#include #include #include #ifdef LIGHT_PLATFORM_WINDOWS #include #include #endif #include namespace Light { //================================================== CONSTANT_BUFFER //==================================================// Scope ConstantBuffer::Create( ConstantBufferIndex index, unsigned int size, Ref sharedContext ) { switch (GraphicsContext::GetGraphicsAPI()) { case GraphicsAPI::OpenGL: return CreateScope(index, size); case GraphicsAPI::DirectX: LT_WIN(return CreateScope( index, size, std::static_pointer_cast(sharedContext) );) default: ASSERT( false, "Invalid/unsupported 'GraphicsAPI' {}", static_cast(GraphicsContext::GetGraphicsAPI()) ); return nullptr; } } //================================================== CONSTANT_BUFFER //==================================================// //================================================== VERTEX_BUFFER //==================================================// Ref VertexBuffer::Create( float *vertices, unsigned int stride, unsigned int count, Ref sharedContext ) { switch (GraphicsContext::GetGraphicsAPI()) { case GraphicsAPI::OpenGL: return CreateRef(vertices, stride, count); case GraphicsAPI::DirectX: LT_WIN(return CreateRef( vertices, stride, count, std::static_pointer_cast(sharedContext) );) default: ASSERT( false, "Invalid/unsupported 'GraphicsAPI' {}", static_cast(GraphicsContext::GetGraphicsAPI()) ); return nullptr; } } //================================================== VERTEX_BUFFER //==================================================// //======================================== INDEX_BUFFER ========================================// Ref IndexBuffer::Create( unsigned int *indices, unsigned int count, Ref sharedContext ) { switch (GraphicsContext::GetGraphicsAPI()) { case GraphicsAPI::OpenGL: return CreateRef(indices, count); case GraphicsAPI::DirectX: LT_WIN(return CreateRef( indices, count, std::dynamic_pointer_cast(sharedContext) );) default: ASSERT( false, "Invalid/unsupported 'GraphicsAPI' {}", static_cast(GraphicsContext::GetGraphicsAPI()) ); return nullptr; } } //======================================== INDEX_BUFFER ========================================// } // namespace Light