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-2012 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 {
32 
35 };
36 
39 {
40 public:
41 
44 
46 
88  const c8* vertexShaderProgram,
89  const c8* vertexShaderEntryPointName,
90  E_VERTEX_SHADER_TYPE vsCompileTarget,
91  const c8* pixelShaderProgram,
92  const c8* pixelShaderEntryPointName,
93  E_PIXEL_SHADER_TYPE psCompileTarget,
94  const c8* geometryShaderProgram,
95  const c8* geometryShaderEntryPointName = "main",
96  E_GEOMETRY_SHADER_TYPE gsCompileTarget = EGST_GS_4_0,
99  u32 verticesOut = 0,
100  IShaderConstantSetCallBack* callback = 0,
101  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
102  s32 userData = 0,
103  E_GPU_SHADING_LANGUAGE shadingLang = EGSL_DEFAULT) = 0;
104 
107  const c8* vertexShaderProgram,
108  const c8* vertexShaderEntryPointName="main",
109  E_VERTEX_SHADER_TYPE vsCompileTarget=EVST_VS_1_1,
110  const c8* pixelShaderProgram=0,
111  const c8* pixelShaderEntryPointName="main",
112  E_PIXEL_SHADER_TYPE psCompileTarget=EPST_PS_1_1,
113  IShaderConstantSetCallBack* callback=0,
114  E_MATERIAL_TYPE baseMaterial=video::EMT_SOLID,
115  s32 userData=0,
117  {
119  vertexShaderProgram, vertexShaderEntryPointName,
120  vsCompileTarget, pixelShaderProgram,
121  pixelShaderEntryPointName, psCompileTarget,
122  0, "main", EGST_GS_4_0,
124  callback, baseMaterial, userData, shadingLang);
125  }
126 
128 
132  const c8* vertexShaderProgram,
133  const c8* pixelShaderProgram=0,
134  IShaderConstantSetCallBack* callback=0,
135  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
136  s32 userData=0)
137  {
139  vertexShaderProgram, "main",
140  EVST_VS_1_1, pixelShaderProgram,
141  "main", EPST_PS_1_1,
142  0, "main", EGST_GS_4_0,
144  callback, baseMaterial, userData);
145  }
146 
148 
152  const c8* vertexShaderProgram,
153  const c8* pixelShaderProgram = 0,
154  const c8* geometryShaderProgram = 0,
157  u32 verticesOut = 0,
158  IShaderConstantSetCallBack* callback = 0,
159  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
160  s32 userData = 0 )
161  {
163  vertexShaderProgram, "main",
164  EVST_VS_1_1, pixelShaderProgram,
165  "main", EPST_PS_1_1,
166  geometryShaderProgram, "main", EGST_GS_4_0,
167  inType, outType, verticesOut,
168  callback, baseMaterial, userData);
169  }
170 
172 
215  const io::path& vertexShaderProgramFileName,
216  const c8* vertexShaderEntryPointName,
217  E_VERTEX_SHADER_TYPE vsCompileTarget,
218  const io::path& pixelShaderProgramFileName,
219  const c8* pixelShaderEntryPointName,
220  E_PIXEL_SHADER_TYPE psCompileTarget,
221  const io::path& geometryShaderProgramFileName,
222  const c8* geometryShaderEntryPointName = "main",
223  E_GEOMETRY_SHADER_TYPE gsCompileTarget = EGST_GS_4_0,
226  u32 verticesOut = 0,
227  IShaderConstantSetCallBack* callback = 0,
228  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
229  s32 userData = 0,
230  E_GPU_SHADING_LANGUAGE shadingLang = EGSL_DEFAULT) = 0;
231 
234  const io::path& vertexShaderProgramFileName,
235  const c8* vertexShaderEntryPointName = "main",
236  E_VERTEX_SHADER_TYPE vsCompileTarget = EVST_VS_1_1,
237  const io::path& pixelShaderProgramFileName = "",
238  const c8* pixelShaderEntryPointName = "main",
239  E_PIXEL_SHADER_TYPE psCompileTarget = EPST_PS_1_1,
240  IShaderConstantSetCallBack* callback = 0,
241  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
242  s32 userData = 0,
243  E_GPU_SHADING_LANGUAGE shadingLang = EGSL_DEFAULT)
244  {
246  vertexShaderProgramFileName, vertexShaderEntryPointName,
247  vsCompileTarget, pixelShaderProgramFileName,
248  pixelShaderEntryPointName, psCompileTarget,
249  "", "main", EGST_GS_4_0,
251  callback, baseMaterial, userData, shadingLang);
252  }
253 
255 
259  const io::path& vertexShaderProgramFileName,
260  const io::path& pixelShaderProgramFileName = "",
261  IShaderConstantSetCallBack* callback = 0,
262  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
263  s32 userData = 0 )
264  {
266  vertexShaderProgramFileName, "main",
267  EVST_VS_1_1, pixelShaderProgramFileName,
268  "main", EPST_PS_1_1,
269  "", "main", EGST_GS_4_0,
271  callback, baseMaterial, userData);
272  }
273 
275 
279  const io::path& vertexShaderProgramFileName,
280  const io::path& pixelShaderProgramFileName = "",
281  const io::path& geometryShaderProgramFileName = "",
284  u32 verticesOut = 0,
285  IShaderConstantSetCallBack* callback = 0,
286  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
287  s32 userData = 0 )
288  {
290  vertexShaderProgramFileName, "main",
291  EVST_VS_1_1, pixelShaderProgramFileName,
292  "main", EPST_PS_1_1,
293  geometryShaderProgramFileName, "main", EGST_GS_4_0,
294  inType, outType, verticesOut,
295  callback, baseMaterial, userData);
296  }
297 
299 
340  io::IReadFile* vertexShaderProgram,
341  const c8* vertexShaderEntryPointName,
342  E_VERTEX_SHADER_TYPE vsCompileTarget,
343  io::IReadFile* pixelShaderProgram,
344  const c8* pixelShaderEntryPointName,
345  E_PIXEL_SHADER_TYPE psCompileTarget,
346  io::IReadFile* geometryShaderProgram,
347  const c8* geometryShaderEntryPointName = "main",
348  E_GEOMETRY_SHADER_TYPE gsCompileTarget = EGST_GS_4_0,
351  u32 verticesOut = 0,
352  IShaderConstantSetCallBack* callback = 0,
353  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
354  s32 userData = 0,
355  E_GPU_SHADING_LANGUAGE shadingLang = EGSL_DEFAULT) = 0;
356 
359  io::IReadFile* vertexShaderProgram,
360  const c8* vertexShaderEntryPointName = "main",
361  E_VERTEX_SHADER_TYPE vsCompileTarget = EVST_VS_1_1,
362  io::IReadFile* pixelShaderProgram = 0,
363  const c8* pixelShaderEntryPointName = "main",
364  E_PIXEL_SHADER_TYPE psCompileTarget = EPST_PS_1_1,
365  IShaderConstantSetCallBack* callback = 0,
366  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
367  s32 userData = 0,
368  E_GPU_SHADING_LANGUAGE shadingLang = EGSL_DEFAULT)
369  {
371  vertexShaderProgram, vertexShaderEntryPointName,
372  vsCompileTarget, pixelShaderProgram,
373  pixelShaderEntryPointName, psCompileTarget,
374  0, "main", EGST_GS_4_0,
376  callback, baseMaterial, userData, shadingLang);
377  }
378 
380 
413  virtual s32 addShaderMaterial(const c8* vertexShaderProgram = 0,
414  const c8* pixelShaderProgram = 0,
415  IShaderConstantSetCallBack* callback = 0,
416  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
417  s32 userData = 0) = 0;
418 
420 
437  virtual s32 addShaderMaterialFromFiles(io::IReadFile* vertexShaderProgram,
438  io::IReadFile* pixelShaderProgram,
439  IShaderConstantSetCallBack* callback = 0,
440  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
441  s32 userData = 0) = 0;
442 
444 
462  virtual s32 addShaderMaterialFromFiles(const io::path& vertexShaderProgramFileName,
463  const io::path& pixelShaderProgramFileName,
464  IShaderConstantSetCallBack* callback = 0,
465  E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
466  s32 userData = 0) = 0;
467 };
468 
469 
470 } // end namespace video
471 } // end namespace irr
472 
473 #endif
474 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Mon May 6 2013 17:41:01 by Doxygen (1.8.3.1)