1d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com//
2358e88d786a5c48b45a28454861b7018ec39c95fshannon.woods@transgaming.com// Copyright (c) 2012-2013 The ANGLE Project Authors. All rights reserved.
3d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com// Use of this source code is governed by a BSD-style license that can be
4d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com// found in the LICENSE file.
5d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com//
6d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com
7d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com// ShaderExecutable9.h: Defines a D3D9-specific class to contain shader
8d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com// executable implementation details.
9d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com
10d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com#ifndef LIBGLESV2_RENDERER_SHADEREXECUTABLE9_H_
11d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com#define LIBGLESV2_RENDERER_SHADEREXECUTABLE9_H_
12d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com
13d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com#include "libGLESv2/renderer/ShaderExecutable.h"
14d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com
15d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.comnamespace rx
16d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com{
17d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com
18d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.comclass ShaderExecutable9 : public ShaderExecutable
19d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com{
20d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com  public:
212275f9159895aefa0b9ae7deff08bc40b6f6ede8daniel@transgaming.com    ShaderExecutable9(const void *function, size_t length, IDirect3DPixelShader9 *executable);
222275f9159895aefa0b9ae7deff08bc40b6f6ede8daniel@transgaming.com    ShaderExecutable9(const void *function, size_t length, IDirect3DVertexShader9 *executable);
23d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com    virtual ~ShaderExecutable9();
24d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com
25d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com    static ShaderExecutable9 *makeShaderExecutable9(ShaderExecutable *executable);
26d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com
27358e88d786a5c48b45a28454861b7018ec39c95fshannon.woods@transgaming.com    IDirect3DPixelShader9 *getPixelShader() const;
28358e88d786a5c48b45a28454861b7018ec39c95fshannon.woods@transgaming.com    IDirect3DVertexShader9 *getVertexShader() const;
29d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com
30d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com  private:
31d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com    DISALLOW_COPY_AND_ASSIGN(ShaderExecutable9);
32d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com
33d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com    IDirect3DPixelShader9 *mPixelExecutable;
34d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com    IDirect3DVertexShader9 *mVertexExecutable;
35d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com};
36d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com
37d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com}
38d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com
39d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com#endif // LIBGLESV2_RENDERER_SHADEREXECUTABLE9_H_