APEX Framework: UserRenderResourceManager.h Source File

NVIDIA APEX

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.