| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- #pragma once
- #include "BsD3D11Prerequisites.h"
- #include "BsRTTIType.h"
- #include "BsGpuProgramManager.h"
- #include "BsD3D11GpuProgram.h"
- namespace BansheeEngine
- {
- class BS_D3D11_EXPORT D3D11GpuProgramRTTI : public RTTIType<D3D11GpuProgram, GpuProgram, D3D11GpuProgramRTTI>
- {
- public:
- D3D11GpuProgramRTTI()
- { }
- virtual const String& getRTTIName()
- {
- static String name = "D3D11GpuProgram";
- return name;
- }
- virtual UINT32 getRTTIId()
- {
- return TID_D3D11_GpuProgram;
- }
- virtual std::shared_ptr<IReflectable> newRTTIObject()
- {
- BS_EXCEPT(InvalidStateException, "Cannot create an instance of an abstract class.");
- }
- };
- class BS_D3D11_EXPORT D3D11GpuVertexProgramRTTI : public RTTIType<D3D11GpuVertexProgram, D3D11GpuProgram, D3D11GpuVertexProgramRTTI>
- {
- public:
- D3D11GpuVertexProgramRTTI()
- { }
- virtual const String& getRTTIName()
- {
- static String name = "D3D11GpuVertexProgram";
- return name;
- }
- virtual UINT32 getRTTIId()
- {
- return TID_D3D11_GpuVertexProgram;
- }
- virtual std::shared_ptr<IReflectable> newRTTIObject()
- {
- return GpuProgramManager::instance().createEmpty("hlsl", GPT_VERTEX_PROGRAM);
- }
- };
- class BS_D3D11_EXPORT D3D11GpuFragmentProgramRTTI : public RTTIType<D3D11GpuFragmentProgram, D3D11GpuProgram, D3D11GpuFragmentProgramRTTI>
- {
- public:
- D3D11GpuFragmentProgramRTTI()
- { }
- virtual const String& getRTTIName()
- {
- static String name = "D3D11GpuFragmentProgram";
- return name;
- }
- virtual UINT32 getRTTIId()
- {
- return TID_D3D11_GpuFragmentProgram;
- }
- virtual std::shared_ptr<IReflectable> newRTTIObject()
- {
- return GpuProgramManager::instance().createEmpty("hlsl", GPT_FRAGMENT_PROGRAM);
- }
- };
- class BS_D3D11_EXPORT D3D11GpuGeometryProgramRTTI : public RTTIType<D3D11GpuGeometryProgram, D3D11GpuProgram, D3D11GpuGeometryProgramRTTI>
- {
- public:
- D3D11GpuGeometryProgramRTTI()
- { }
- virtual const String& getRTTIName()
- {
- static String name = "D3D11GpuGeometryProgram";
- return name;
- }
- virtual UINT32 getRTTIId()
- {
- return TID_D3D11_GpuGeometryProgram;
- }
- virtual std::shared_ptr<IReflectable> newRTTIObject()
- {
- return GpuProgramManager::instance().createEmpty("hlsl", GPT_GEOMETRY_PROGRAM);
- }
- };
- class BS_D3D11_EXPORT D3D11GpuHullProgramRTTI : public RTTIType<D3D11GpuHullProgram, D3D11GpuProgram, D3D11GpuHullProgramRTTI>
- {
- public:
- D3D11GpuHullProgramRTTI()
- { }
- virtual const String& getRTTIName()
- {
- static String name = "D3D11GpuHullProgram";
- return name;
- }
- virtual UINT32 getRTTIId()
- {
- return TID_D3D11_GpuHullProgram;
- }
- virtual std::shared_ptr<IReflectable> newRTTIObject()
- {
- return GpuProgramManager::instance().createEmpty("hlsl", GPT_HULL_PROGRAM);
- }
- };
- class BS_D3D11_EXPORT D3D11GpuDomainProgramRTTI : public RTTIType<D3D11GpuDomainProgram, D3D11GpuProgram, D3D11GpuDomainProgramRTTI>
- {
- public:
- D3D11GpuDomainProgramRTTI()
- { }
- virtual const String& getRTTIName()
- {
- static String name = "D3D11GpuDomainProgram";
- return name;
- }
- virtual UINT32 getRTTIId()
- {
- return TID_D3D11_GpuDomainProgram;
- }
- virtual std::shared_ptr<IReflectable> newRTTIObject()
- {
- return GpuProgramManager::instance().createEmpty("hlsl", GPT_DOMAIN_PROGRAM);
- }
- };
- class BS_D3D11_EXPORT D3D11GpuComputeProgramRTTI : public RTTIType<D3D11GpuComputeProgram, D3D11GpuProgram, D3D11GpuComputeProgramRTTI>
- {
- public:
- D3D11GpuComputeProgramRTTI()
- { }
- virtual const String& getRTTIName()
- {
- static String name = "D3D11GpuComputeProgram";
- return name;
- }
- virtual UINT32 getRTTIId()
- {
- return TID_D3D11_GpuComputeProgram;
- }
- virtual std::shared_ptr<IReflectable> newRTTIObject()
- {
- return GpuProgramManager::instance().createEmpty("hlsl", GPT_COMPUTE_PROGRAM);
- }
- };
- }
|