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 // ShaderExecutable9.cpp: Implements a D3D9-specific class to contain shader
8 // executable implementation details.
9 
10 #include "libANGLE/renderer/d3d/d3d9/ShaderExecutable9.h"
11 
12 #include "common/debug.h"
13 
14 namespace rx
15 {
16 
ShaderExecutable9(const void * function,size_t length,IDirect3DPixelShader9 * executable)17 ShaderExecutable9::ShaderExecutable9(const void *function, size_t length, IDirect3DPixelShader9 *executable)
18     : ShaderExecutableD3D(function, length)
19 {
20     mPixelExecutable = executable;
21     mVertexExecutable = nullptr;
22 }
23 
ShaderExecutable9(const void * function,size_t length,IDirect3DVertexShader9 * executable)24 ShaderExecutable9::ShaderExecutable9(const void *function, size_t length, IDirect3DVertexShader9 *executable)
25     : ShaderExecutableD3D(function, length)
26 {
27     mVertexExecutable = executable;
28     mPixelExecutable  = nullptr;
29 }
30 
~ShaderExecutable9()31 ShaderExecutable9::~ShaderExecutable9()
32 {
33     SafeRelease(mVertexExecutable);
34     SafeRelease(mPixelExecutable);
35 }
36 
getVertexShader() const37 IDirect3DVertexShader9 *ShaderExecutable9::getVertexShader() const
38 {
39     return mVertexExecutable;
40 }
41 
getPixelShader() const42 IDirect3DPixelShader9 *ShaderExecutable9::getPixelShader() const
43 {
44     return mPixelExecutable;
45 }
46 
47 }
48