5#ifndef DCPP_I_GPU_PROGRAMMING_SERVICES_HPP_INCLUDED 
    6#define DCPP_I_GPU_PROGRAMMING_SERVICES_HPP_INCLUDED 
    8#include <duckcpp/core/engine/EShaderTypes.hpp> 
    9#include <duckcpp/core/engine/EMaterialTypes.hpp> 
   10#include <duckcpp/core/engine/EPrimitiveTypes.hpp> 
   11#include <duckcpp/core/engine/path.hpp> 
   25class IShaderConstantSetCallBack;
 
  106            vertexShaderProgram, vertexShaderEntryPointName,
 
  107            vsCompileTarget, pixelShaderProgram,
 
  108            pixelShaderEntryPointName, psCompileTarget,
 
  109            0, 
"main", EGST_GS_4_0,
 
  111            callback, baseMaterial, userData);
 
 
  126            vertexShaderProgram, 
"main",
 
  127            EVST_VS_1_1, pixelShaderProgram,
 
  129            0, 
"main", EGST_GS_4_0,
 
  131            callback, baseMaterial, userData);
 
 
  150            vertexShaderProgram, 
"main",
 
  151            EVST_VS_1_1, pixelShaderProgram,
 
  153            geometryShaderProgram, 
"main", EGST_GS_4_0,
 
  154            inType, outType, verticesOut,
 
  155            callback, baseMaterial, userData);
 
 
  230            vertexShaderProgramFileName, vertexShaderEntryPointName,
 
  231            vsCompileTarget, pixelShaderProgramFileName,
 
  232            pixelShaderEntryPointName, psCompileTarget,
 
  233            "", 
"main", EGST_GS_4_0,
 
  235            callback, baseMaterial, userData);
 
 
  250            vertexShaderProgramFileName, 
"main",
 
  251            EVST_VS_1_1, pixelShaderProgramFileName,
 
  253            "", 
"main", EGST_GS_4_0,
 
  255            callback, baseMaterial, userData);
 
 
  274            vertexShaderProgramFileName, 
"main",
 
  275            EVST_VS_1_1, pixelShaderProgramFileName,
 
  277            geometryShaderProgramFileName, 
"main", EGST_GS_4_0,
 
  278            inType, outType, verticesOut,
 
  279            callback, baseMaterial, userData);
 
 
  352            vertexShaderProgram, vertexShaderEntryPointName,
 
  353            vsCompileTarget, pixelShaderProgram,
 
  354            pixelShaderEntryPointName, psCompileTarget,
 
  355            0, 
"main", EGST_GS_4_0,
 
  357            callback, baseMaterial, userData);
 
 
 
Interface providing read access to a file.
Definition IReadFile.hpp:19
 
Interface making it possible to create and use programs running on the GPU.
Definition IGPUProgrammingServices.hpp:29
 
dcpp::int32_kt addHighLevelShaderMaterial(const dcpp::char_kt *vertexShaderProgram, const dcpp::char_kt *vertexShaderEntryPointName="main", E_VERTEX_SHADER_TYPE vsCompileTarget=EVST_VS_1_1, const dcpp::char_kt *pixelShaderProgram=0, const dcpp::char_kt *pixelShaderEntryPointName="main", E_PIXEL_SHADER_TYPE psCompileTarget=EPST_PS_1_1, IShaderConstantSetCallBack *callback=0, E_MATERIAL_TYPE baseMaterial=dcpp::video::EMT_SOLID, dcpp::int32_kt userData=0)
convenience function for use without geometry shaders
Definition IGPUProgrammingServices.hpp:94
 
virtual dcpp::int32_kt addShaderMaterial(const dcpp::char_kt *vertexShaderProgram=0, const dcpp::char_kt *pixelShaderProgram=0, IShaderConstantSetCallBack *callback=0, E_MATERIAL_TYPE baseMaterial=dcpp::video::EMT_SOLID, dcpp::int32_kt userData=0)=0
Adds a new ASM shader material renderer to the VideoDriver.
 
virtual dcpp::int32_kt addShaderMaterialFromFiles(dcpp::io::IReadFile *vertexShaderProgram, dcpp::io::IReadFile *pixelShaderProgram, IShaderConstantSetCallBack *callback=0, E_MATERIAL_TYPE baseMaterial=dcpp::video::EMT_SOLID, dcpp::int32_kt userData=0)=0
Like IGPUProgrammingServices::addShaderMaterial(), but loads from files.
 
dcpp::int32_kt addHighLevelShaderMaterialFromFiles(dcpp::io::IReadFile *vertexShaderProgram, const dcpp::char_kt *vertexShaderEntryPointName="main", E_VERTEX_SHADER_TYPE vsCompileTarget=EVST_VS_1_1, dcpp::io::IReadFile *pixelShaderProgram=0, const dcpp::char_kt *pixelShaderEntryPointName="main", E_PIXEL_SHADER_TYPE psCompileTarget=EPST_PS_1_1, IShaderConstantSetCallBack *callback=0, E_MATERIAL_TYPE baseMaterial=dcpp::video::EMT_SOLID, dcpp::int32_kt userData=0)
convenience function for use without geometry shaders
Definition IGPUProgrammingServices.hpp:340
 
virtual ~IGPUProgrammingServices()
Destructor.
Definition IGPUProgrammingServices.hpp:33
 
virtual dcpp::int32_kt addShaderMaterialFromFiles(const dcpp::io::path &vertexShaderProgramFileName, const dcpp::io::path &pixelShaderProgramFileName, IShaderConstantSetCallBack *callback=0, E_MATERIAL_TYPE baseMaterial=dcpp::video::EMT_SOLID, dcpp::int32_kt userData=0)=0
Like IGPUProgrammingServices::addShaderMaterial(), but loads from files.
 
virtual dcpp::int32_kt addHighLevelShaderMaterialFromFiles(dcpp::io::IReadFile *vertexShaderProgram, const dcpp::char_kt *vertexShaderEntryPointName, E_VERTEX_SHADER_TYPE vsCompileTarget, dcpp::io::IReadFile *pixelShaderProgram, const dcpp::char_kt *pixelShaderEntryPointName, E_PIXEL_SHADER_TYPE psCompileTarget, dcpp::io::IReadFile *geometryShaderProgram, const dcpp::char_kt *geometryShaderEntryPointName="main", E_GEOMETRY_SHADER_TYPE gsCompileTarget=EGST_GS_4_0, dcpp::scene::E_PRIMITIVE_TYPE inType=dcpp::scene::EPT_TRIANGLES, dcpp::scene::E_PRIMITIVE_TYPE outType=dcpp::scene::EPT_TRIANGLE_STRIP, dcpp::uint32_kt verticesOut=0, IShaderConstantSetCallBack *callback=0, E_MATERIAL_TYPE baseMaterial=dcpp::video::EMT_SOLID, dcpp::int32_kt userData=0)=0
Like IGPUProgrammingServices::addShaderMaterial(), but loads from files.
 
dcpp::int32_kt addHighLevelShaderMaterialFromFiles(const dcpp::io::path &vertexShaderProgramFileName, const dcpp::io::path &pixelShaderProgramFileName="", IShaderConstantSetCallBack *callback=0, E_MATERIAL_TYPE baseMaterial=dcpp::video::EMT_SOLID, dcpp::int32_kt userData=0)
convenience function for use with many defaults, without geometry shader
Definition IGPUProgrammingServices.hpp:242
 
virtual dcpp::int32_kt addHighLevelShaderMaterial(const dcpp::char_kt *vertexShaderProgram, const dcpp::char_kt *vertexShaderEntryPointName, E_VERTEX_SHADER_TYPE vsCompileTarget, const dcpp::char_kt *pixelShaderProgram, const dcpp::char_kt *pixelShaderEntryPointName, E_PIXEL_SHADER_TYPE psCompileTarget, const dcpp::char_kt *geometryShaderProgram, const dcpp::char_kt *geometryShaderEntryPointName="main", E_GEOMETRY_SHADER_TYPE gsCompileTarget=EGST_GS_4_0, dcpp::scene::E_PRIMITIVE_TYPE inType=dcpp::scene::EPT_TRIANGLES, dcpp::scene::E_PRIMITIVE_TYPE outType=dcpp::scene::EPT_TRIANGLE_STRIP, dcpp::uint32_kt verticesOut=0, IShaderConstantSetCallBack *callback=0, E_MATERIAL_TYPE baseMaterial=dcpp::video::EMT_SOLID, dcpp::int32_kt userData=0)=0
Adds a new high-level shading material renderer to the VideoDriver.
 
dcpp::int32_kt addHighLevelShaderMaterial(const dcpp::char_kt *vertexShaderProgram, const dcpp::char_kt *pixelShaderProgram=0, IShaderConstantSetCallBack *callback=0, E_MATERIAL_TYPE baseMaterial=dcpp::video::EMT_SOLID, dcpp::int32_kt userData=0)
convenience function for use with many defaults, without geometry shader
Definition IGPUProgrammingServices.hpp:118
 
dcpp::int32_kt addHighLevelShaderMaterial(const dcpp::char_kt *vertexShaderProgram, const dcpp::char_kt *pixelShaderProgram=0, const dcpp::char_kt *geometryShaderProgram=0, dcpp::scene::E_PRIMITIVE_TYPE inType=dcpp::scene::EPT_TRIANGLES, dcpp::scene::E_PRIMITIVE_TYPE outType=dcpp::scene::EPT_TRIANGLE_STRIP, dcpp::uint32_kt verticesOut=0, IShaderConstantSetCallBack *callback=0, E_MATERIAL_TYPE baseMaterial=dcpp::video::EMT_SOLID, dcpp::int32_kt userData=0)
convenience function for use with many defaults, with geometry shader
Definition IGPUProgrammingServices.hpp:138
 
dcpp::int32_kt addHighLevelShaderMaterialFromFiles(const dcpp::io::path &vertexShaderProgramFileName, const dcpp::char_kt *vertexShaderEntryPointName="main", E_VERTEX_SHADER_TYPE vsCompileTarget=EVST_VS_1_1, const dcpp::io::path &pixelShaderProgramFileName="", const dcpp::char_kt *pixelShaderEntryPointName="main", E_PIXEL_SHADER_TYPE psCompileTarget=EPST_PS_1_1, IShaderConstantSetCallBack *callback=0, E_MATERIAL_TYPE baseMaterial=dcpp::video::EMT_SOLID, dcpp::int32_kt userData=0)
convenience function for use without geometry shaders
Definition IGPUProgrammingServices.hpp:218
 
dcpp::int32_kt addHighLevelShaderMaterialFromFiles(const dcpp::io::path &vertexShaderProgramFileName, const dcpp::io::path &pixelShaderProgramFileName="", const dcpp::io::path &geometryShaderProgramFileName="", dcpp::scene::E_PRIMITIVE_TYPE inType=dcpp::scene::EPT_TRIANGLES, dcpp::scene::E_PRIMITIVE_TYPE outType=dcpp::scene::EPT_TRIANGLE_STRIP, dcpp::uint32_kt verticesOut=0, IShaderConstantSetCallBack *callback=0, E_MATERIAL_TYPE baseMaterial=dcpp::video::EMT_SOLID, dcpp::int32_kt userData=0)
convenience function for use with many defaults, with geometry shader
Definition IGPUProgrammingServices.hpp:262
 
virtual dcpp::int32_kt addHighLevelShaderMaterialFromFiles(const dcpp::io::path &vertexShaderProgramFileName, const dcpp::char_kt *vertexShaderEntryPointName, E_VERTEX_SHADER_TYPE vsCompileTarget, const dcpp::io::path &pixelShaderProgramFileName, const dcpp::char_kt *pixelShaderEntryPointName, E_PIXEL_SHADER_TYPE psCompileTarget, const dcpp::io::path &geometryShaderProgramFileName, const dcpp::char_kt *geometryShaderEntryPointName="main", E_GEOMETRY_SHADER_TYPE gsCompileTarget=EGST_GS_4_0, dcpp::scene::E_PRIMITIVE_TYPE inType=dcpp::scene::EPT_TRIANGLES, dcpp::scene::E_PRIMITIVE_TYPE outType=dcpp::scene::EPT_TRIANGLE_STRIP, dcpp::uint32_kt verticesOut=0, IShaderConstantSetCallBack *callback=0, E_MATERIAL_TYPE baseMaterial=dcpp::video::EMT_SOLID, dcpp::int32_kt userData=0)=0
Like IGPUProgrammingServices::addShaderMaterial(), but loads from files.
 
Interface making it possible to set constants for gpu programs every frame.
Definition IShaderConstantSetCallBack.hpp:22
 
E_PRIMITIVE_TYPE
Enumeration for all primitive types there are.
Definition EPrimitiveTypes.hpp:15
 
@ EPT_TRIANGLE_STRIP
Definition EPrimitiveTypes.hpp:30
 
@ EPT_TRIANGLES
Explicitly set all vertices for each triangle.
Definition EPrimitiveTypes.hpp:37
 
E_GEOMETRY_SHADER_TYPE
Enum for supported geometry shader types.
Definition EShaderTypes.hpp:73
 
E_VERTEX_SHADER_TYPE
Compile target enumeration for the addHighLevelShaderMaterial() method.
Definition EShaderTypes.hpp:13
 
E_MATERIAL_TYPE
Abstracted and easy to use fixed function/programmable pipeline material modes.
Definition EMaterialTypes.hpp:15
 
@ EMT_SOLID
Standard solid material.
Definition EMaterialTypes.hpp:19
 
E_PIXEL_SHADER_TYPE
Compile target enumeration for the addHighLevelShaderMaterial() method.
Definition EShaderTypes.hpp:39
 
As of Duckcpp 1.6, position2d is a synonym for vector2d.
Definition vector3d.hpp:11
 
char char_kt
8 bit character variable.
Definition irrTypes.hpp:37
 
unsigned int uint32_kt
32 bit unsigned variable.
Definition irrTypes.hpp:64
 
signed int int32_kt
32 bit signed variable.
Definition irrTypes.hpp:72