UserRenderResourceManager.h
Go to the documentation of this file.
00001 /* 00002 * Copyright (c) 2008-2017, NVIDIA CORPORATION. All rights reserved. 00003 * 00004 * NVIDIA CORPORATION and its licensors retain all intellectual property 00005 * and proprietary rights in and to this software, related documentation 00006 * and any modifications thereto. Any use, reproduction, disclosure or 00007 * distribution of this software and related documentation without an express 00008 * license agreement from NVIDIA CORPORATION is strictly prohibited. 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 } // end namespace nvidia::apex 00186 00187 #endif
Generated on Fri Dec 15 2017 13:58:35 Copyright © 2012-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved.