• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 }