1 #include "precompiled.h"
2 //
3 // Copyright (c) 2012-2013 The ANGLE Project Authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style license that can be
5 // found in the LICENSE file.
6 //
7
8 // ShaderExecutable9.cpp: Implements a D3D9-specific class to contain shader
9 // executable implementation details.
10
11 #include "libGLESv2/renderer/ShaderExecutable9.h"
12
13 #include "common/debug.h"
14
15 namespace rx
16 {
17
ShaderExecutable9(const void * function,size_t length,IDirect3DPixelShader9 * executable)18 ShaderExecutable9::ShaderExecutable9(const void *function, size_t length, IDirect3DPixelShader9 *executable)
19 : ShaderExecutable(function, length)
20 {
21 mPixelExecutable = executable;
22 mVertexExecutable = NULL;
23 }
24
ShaderExecutable9(const void * function,size_t length,IDirect3DVertexShader9 * executable)25 ShaderExecutable9::ShaderExecutable9(const void *function, size_t length, IDirect3DVertexShader9 *executable)
26 : ShaderExecutable(function, length)
27 {
28 mVertexExecutable = executable;
29 mPixelExecutable = NULL;
30 }
31
~ShaderExecutable9()32 ShaderExecutable9::~ShaderExecutable9()
33 {
34 if (mVertexExecutable)
35 {
36 mVertexExecutable->Release();
37 }
38 if (mPixelExecutable)
39 {
40 mPixelExecutable->Release();
41 }
42 }
43
makeShaderExecutable9(ShaderExecutable * executable)44 ShaderExecutable9 *ShaderExecutable9::makeShaderExecutable9(ShaderExecutable *executable)
45 {
46 ASSERT(HAS_DYNAMIC_TYPE(ShaderExecutable9*, executable));
47 return static_cast<ShaderExecutable9*>(executable);
48 }
49
getVertexShader() const50 IDirect3DVertexShader9 *ShaderExecutable9::getVertexShader() const
51 {
52 return mVertexExecutable;
53 }
54
getPixelShader() const55 IDirect3DPixelShader9 *ShaderExecutable9::getPixelShader() const
56 {
57 return mPixelExecutable;
58 }
59
60 }