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 15namespace rx 16{ 17 18class 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