Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef USER_RENDER_RESOURCE_MANAGER_H
00031 #define USER_RENDER_RESOURCE_MANAGER_H
00032
00038 #include "ApexUsingNamespace.h"
00039
00040 namespace nvidia
00041 {
00042 namespace apex
00043 {
00044
00045 PX_PUSH_PACK_DEFAULT
00046
00047 class UserRenderVertexBuffer;
00048 class UserRenderVertexBufferDesc;
00049 class UserRenderIndexBuffer;
00050 class UserRenderIndexBufferDesc;
00051 class UserRenderSurfaceBuffer;
00052 class UserRenderSurfaceBufferDesc;
00053 class UserRenderBoneBuffer;
00054 class UserRenderBoneBufferDesc;
00055 class UserRenderInstanceBuffer;
00056 class UserRenderInstanceBufferDesc;
00057 class UserRenderSpriteBuffer;
00058 class UserRenderSpriteBufferDesc;
00059 class UserRenderResource;
00060 class UserRenderResourceDesc;
00061 class UserOpaqueMesh;
00062 class UserOpaqueMeshDesc;
00063
00064 class UserRenderSpriteTextureDesc;
00065
00069 struct RenderPrimitiveType
00070 {
00074 enum Enum
00075 {
00076 UNKNOWN = 0,
00077
00078 TRIANGLES,
00079 TRIANGLE_STRIP,
00080
00081 LINES,
00082 LINE_STRIP,
00083
00084 POINTS,
00085 POINT_SPRITES,
00086 };
00087 };
00088
00092 struct RenderCullMode
00093 {
00097 enum Enum
00098 {
00099 CLOCKWISE = 0,
00100 COUNTER_CLOCKWISE,
00101 NONE
00102 };
00103 };
00104
00108 struct RenderBufferHint
00109 {
00113 enum Enum
00114 {
00115 STATIC = 0,
00116 DYNAMIC,
00117 STREAMING,
00118 };
00119 };
00120
00128 class UserRenderResourceManager
00129 {
00130 public:
00131 virtual ~UserRenderResourceManager() {}
00132
00139 virtual UserRenderVertexBuffer* createVertexBuffer(const UserRenderVertexBufferDesc& desc) = 0;
00141 virtual void releaseVertexBuffer(UserRenderVertexBuffer& buffer) = 0;
00142
00144 virtual UserRenderIndexBuffer* createIndexBuffer(const UserRenderIndexBufferDesc& desc) = 0;
00146 virtual void releaseIndexBuffer(UserRenderIndexBuffer& buffer) = 0;
00147
00149 virtual UserRenderBoneBuffer* createBoneBuffer(const UserRenderBoneBufferDesc& desc) = 0;
00151 virtual void releaseBoneBuffer(UserRenderBoneBuffer& buffer) = 0;
00152
00154 virtual UserRenderInstanceBuffer* createInstanceBuffer(const UserRenderInstanceBufferDesc& desc) = 0;
00156 virtual void releaseInstanceBuffer(UserRenderInstanceBuffer& buffer) = 0;
00157
00159 virtual UserRenderSpriteBuffer* createSpriteBuffer(const UserRenderSpriteBufferDesc& desc) = 0;
00161 virtual void releaseSpriteBuffer(UserRenderSpriteBuffer& buffer) = 0;
00162
00164 virtual UserRenderSurfaceBuffer* createSurfaceBuffer(const UserRenderSurfaceBufferDesc& desc) = 0;
00166 virtual void releaseSurfaceBuffer(UserRenderSurfaceBuffer& buffer) = 0;
00167
00169 virtual UserRenderResource* createResource(const UserRenderResourceDesc& desc) = 0;
00170
00175 virtual void releaseResource(UserRenderResource& resource) = 0;
00176
00181 virtual uint32_t getMaxBonesForMaterial(void* material) = 0;
00182
00183
00189 virtual bool getSpriteLayoutData(uint32_t spriteCount, uint32_t spriteSemanticsBitmap, UserRenderSpriteBufferDesc* textureDescArray) = 0;
00190
00196 virtual bool getInstanceLayoutData(uint32_t spriteCount, uint32_t spriteSemanticsBitmap, UserRenderInstanceBufferDesc* instanceDescArray) = 0;
00197
00198 };
00199
00200 PX_POP_PACK
00201
00202 }
00203 }
00204
00205 #endif