Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef USER_RENDER_RESOURCE_MANAGER_H
00013 #define USER_RENDER_RESOURCE_MANAGER_H
00014
00020 #include "ApexUsingNamespace.h"
00021
00022 namespace nvidia
00023 {
00024 namespace apex
00025 {
00026
00027 PX_PUSH_PACK_DEFAULT
00028
00029 class UserRenderVertexBuffer;
00030 class UserRenderVertexBufferDesc;
00031 class UserRenderIndexBuffer;
00032 class UserRenderIndexBufferDesc;
00033 class UserRenderSurfaceBuffer;
00034 class UserRenderSurfaceBufferDesc;
00035 class UserRenderBoneBuffer;
00036 class UserRenderBoneBufferDesc;
00037 class UserRenderInstanceBuffer;
00038 class UserRenderInstanceBufferDesc;
00039 class UserRenderSpriteBuffer;
00040 class UserRenderSpriteBufferDesc;
00041 class UserRenderResource;
00042 class UserRenderResourceDesc;
00043 class UserOpaqueMesh;
00044 class UserOpaqueMeshDesc;
00045
00046 class UserRenderSpriteTextureDesc;
00047
00051 struct RenderPrimitiveType
00052 {
00056 enum Enum
00057 {
00058 UNKNOWN = 0,
00059
00060 TRIANGLES,
00061 TRIANGLE_STRIP,
00062
00063 LINES,
00064 LINE_STRIP,
00065
00066 POINTS,
00067 POINT_SPRITES,
00068 };
00069 };
00070
00074 struct RenderCullMode
00075 {
00079 enum Enum
00080 {
00081 CLOCKWISE = 0,
00082 COUNTER_CLOCKWISE,
00083 NONE
00084 };
00085 };
00086
00090 struct RenderBufferHint
00091 {
00095 enum Enum
00096 {
00097 STATIC = 0,
00098 DYNAMIC,
00099 STREAMING,
00100 };
00101 };
00102
00110 class UserRenderResourceManager
00111 {
00112 public:
00113 virtual ~UserRenderResourceManager() {}
00114
00121 virtual UserRenderVertexBuffer* createVertexBuffer(const UserRenderVertexBufferDesc& desc) = 0;
00123 virtual void releaseVertexBuffer(UserRenderVertexBuffer& buffer) = 0;
00124
00126 virtual UserRenderIndexBuffer* createIndexBuffer(const UserRenderIndexBufferDesc& desc) = 0;
00128 virtual void releaseIndexBuffer(UserRenderIndexBuffer& buffer) = 0;
00129
00131 virtual UserRenderBoneBuffer* createBoneBuffer(const UserRenderBoneBufferDesc& desc) = 0;
00133 virtual void releaseBoneBuffer(UserRenderBoneBuffer& buffer) = 0;
00134
00136 virtual UserRenderInstanceBuffer* createInstanceBuffer(const UserRenderInstanceBufferDesc& desc) = 0;
00138 virtual void releaseInstanceBuffer(UserRenderInstanceBuffer& buffer) = 0;
00139
00141 virtual UserRenderSpriteBuffer* createSpriteBuffer(const UserRenderSpriteBufferDesc& desc) = 0;
00143 virtual void releaseSpriteBuffer(UserRenderSpriteBuffer& buffer) = 0;
00144
00146 virtual UserRenderSurfaceBuffer* createSurfaceBuffer(const UserRenderSurfaceBufferDesc& desc) = 0;
00148 virtual void releaseSurfaceBuffer(UserRenderSurfaceBuffer& buffer) = 0;
00149
00151 virtual UserRenderResource* createResource(const UserRenderResourceDesc& desc) = 0;
00152
00157 virtual void releaseResource(UserRenderResource& resource) = 0;
00158
00163 virtual uint32_t getMaxBonesForMaterial(void* material) = 0;
00164
00165
00171 virtual bool getSpriteLayoutData(uint32_t spriteCount, uint32_t spriteSemanticsBitmap, UserRenderSpriteBufferDesc* textureDescArray) = 0;
00172
00178 virtual bool getInstanceLayoutData(uint32_t spriteCount, uint32_t spriteSemanticsBitmap, UserRenderInstanceBufferDesc* instanceDescArray) = 0;
00179
00180 };
00181
00182 PX_POP_PACK
00183
00184 }
00185 }
00186
00187 #endif