1 // 2 // Copyright (c) 2012-2013 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 7 // ShaderExecutable11.h: Defines a D3D11-specific class to contain shader 8 // executable implementation details. 9 10 #ifndef LIBGLESV2_RENDERER_SHADEREXECUTABLE11_H_ 11 #define LIBGLESV2_RENDERER_SHADEREXECUTABLE11_H_ 12 13 #include "libGLESv2/renderer/ShaderExecutable.h" 14 15 namespace rx 16 { 17 18 class ShaderExecutable11 : public ShaderExecutable 19 { 20 public: 21 ShaderExecutable11(const void *function, size_t length, ID3D11PixelShader *executable); 22 ShaderExecutable11(const void *function, size_t length, ID3D11VertexShader *executable); 23 ShaderExecutable11(const void *function, size_t length, ID3D11GeometryShader *executable); 24 25 virtual ~ShaderExecutable11(); 26 27 static ShaderExecutable11 *makeShaderExecutable11(ShaderExecutable *executable); 28 29 ID3D11PixelShader *getPixelShader() const; 30 ID3D11VertexShader *getVertexShader() const; 31 ID3D11GeometryShader *getGeometryShader() const; 32 33 ID3D11Buffer *getConstantBuffer(ID3D11Device *device, unsigned int registerCount); 34 35 private: 36 DISALLOW_COPY_AND_ASSIGN(ShaderExecutable11); 37 38 ID3D11PixelShader *mPixelExecutable; 39 ID3D11VertexShader *mVertexExecutable; 40 ID3D11GeometryShader *mGeometryExecutable; 41 42 ID3D11Buffer *mConstantBuffer; 43 }; 44 45 } 46 47 #endif // LIBGLESV2_RENDERER_SHADEREXECUTABLE11_H_ 48