Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials
IGPUProgrammingServices.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2010 Nikolaus Gebhardt
2 // This file is part of the "Irrlicht Engine".
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
4 
5 #ifndef __I_GPU_PROGRAMMING_SERVICES_H_INCLUDED__
6 #define __I_GPU_PROGRAMMING_SERVICES_H_INCLUDED__
7 
8 #include "EShaderTypes.h"
9 #include "EMaterialTypes.h"
10 #include "EPrimitiveTypes.h"
11 #include "path.h"
12 
13 namespace irr
14 {
15 
16 namespace io
17 {
18  class IReadFile;
19 } // end namespace io
20 
21 namespace video
22 {
23 
24 class IVideoDriver;
25 class IShaderConstantSetCallBack;
26 
29 {
30 public:
31 
34 
36 
77  const c8* vertexShaderProgram,
78  const c8* vertexShaderEntryPointName,
79  E_VERTEX_SHADER_TYPE vsCompileTarget,
80  const c8* pixelShaderProgram,
81  const c8* pixelShaderEntryPointName,
82  E_PIXEL_SHADER_TYPE psCompileTarget,
83  const c8* geometryShaderProgram,
84  const c8* geometryShaderEntryPointName = "main",
85  E_GEOMETRY_SHADER_TYPE gsCompileTarget = EGST_GS_4_0,
88  u32 verticesOut = 0,
89  IShaderConstantSetCallBack* callback = 0,
90  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
91  s32 userData = 0 ) = 0;
92 
95  const c8* vertexShaderProgram,
96  const c8* vertexShaderEntryPointName = "main",
97  E_VERTEX_SHADER_TYPE vsCompileTarget = EVST_VS_1_1,
98  const c8* pixelShaderProgram = 0,
99  const c8* pixelShaderEntryPointName = "main",
100  E_PIXEL_SHADER_TYPE psCompileTarget = EPST_PS_1_1,
101  IShaderConstantSetCallBack* callback = 0,
102  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
103  s32 userData = 0 )
104  {
106  vertexShaderProgram, vertexShaderEntryPointName,
107  vsCompileTarget, pixelShaderProgram,
108  pixelShaderEntryPointName, psCompileTarget,
109  0, "main", EGST_GS_4_0,
111  callback, baseMaterial, userData);
112  }
113 
115 
157  const io::path& vertexShaderProgramFileName,
158  const c8* vertexShaderEntryPointName,
159  E_VERTEX_SHADER_TYPE vsCompileTarget,
160  const io::path& pixelShaderProgramFileName,
161  const c8* pixelShaderEntryPointName,
162  E_PIXEL_SHADER_TYPE psCompileTarget,
163  const io::path& geometryShaderProgramFileName,
164  const c8* geometryShaderEntryPointName = "main",
165  E_GEOMETRY_SHADER_TYPE gsCompileTarget = EGST_GS_4_0,
168  u32 verticesOut = 0,
169  IShaderConstantSetCallBack* callback = 0,
170  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
171  s32 userData = 0) = 0;
172 
175  const io::path& vertexShaderProgramFileName,
176  const c8* vertexShaderEntryPointName = "main",
177  E_VERTEX_SHADER_TYPE vsCompileTarget = EVST_VS_1_1,
178  const io::path& pixelShaderProgramFileName = "",
179  const c8* pixelShaderEntryPointName = "main",
180  E_PIXEL_SHADER_TYPE psCompileTarget = EPST_PS_1_1,
181  IShaderConstantSetCallBack* callback = 0,
182  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
183  s32 userData = 0)
184  {
186  vertexShaderProgramFileName, vertexShaderEntryPointName,
187  vsCompileTarget, pixelShaderProgramFileName,
188  pixelShaderEntryPointName, psCompileTarget,
189  "", "main", EGST_GS_4_0,
191  callback, baseMaterial, userData);
192  }
193 
195 
235  io::IReadFile* vertexShaderProgram,
236  const c8* vertexShaderEntryPointName,
237  E_VERTEX_SHADER_TYPE vsCompileTarget,
238  io::IReadFile* pixelShaderProgram,
239  const c8* pixelShaderEntryPointName,
240  E_PIXEL_SHADER_TYPE psCompileTarget,
241  io::IReadFile* geometryShaderProgram,
242  const c8* geometryShaderEntryPointName = "main",
243  E_GEOMETRY_SHADER_TYPE gsCompileTarget = EGST_GS_4_0,
246  u32 verticesOut = 0,
247  IShaderConstantSetCallBack* callback = 0,
248  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
249  s32 userData = 0) = 0;
250 
253  io::IReadFile* vertexShaderProgram,
254  const c8* vertexShaderEntryPointName = "main",
255  E_VERTEX_SHADER_TYPE vsCompileTarget = EVST_VS_1_1,
256  io::IReadFile* pixelShaderProgram = 0,
257  const c8* pixelShaderEntryPointName = "main",
258  E_PIXEL_SHADER_TYPE psCompileTarget = EPST_PS_1_1,
259  IShaderConstantSetCallBack* callback = 0,
260  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
261  s32 userData = 0)
262  {
264  vertexShaderProgram, vertexShaderEntryPointName,
265  vsCompileTarget, pixelShaderProgram,
266  pixelShaderEntryPointName, psCompileTarget,
267  0, "main", EGST_GS_4_0,
269  callback, baseMaterial, userData);
270  }
271 
273 
306  virtual s32 addShaderMaterial(const c8* vertexShaderProgram = 0,
307  const c8* pixelShaderProgram = 0,
308  IShaderConstantSetCallBack* callback = 0,
309  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
310  s32 userData = 0) = 0;
311 
313 
330  virtual s32 addShaderMaterialFromFiles(io::IReadFile* vertexShaderProgram,
331  io::IReadFile* pixelShaderProgram,
332  IShaderConstantSetCallBack* callback = 0,
333  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
334  s32 userData = 0) = 0;
335 
337 
355  virtual s32 addShaderMaterialFromFiles(const io::path& vertexShaderProgramFileName,
356  const io::path& pixelShaderProgramFileName,
357  IShaderConstantSetCallBack* callback = 0,
358  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
359  s32 userData = 0) = 0;
360 };
361 
362 
363 } // end namespace video
364 } // end namespace irr
365 
366 #endif
367 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Tue Jun 5 2012 17:57:11 by Doxygen (1.8.1)