Home | History | Annotate | Download | only in d3d9
      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 "libGLESv2/renderer/d3d/d3d9/ShaderExecutable9.h"
     11 
     12 #include "common/debug.h"
     13 
     14 namespace rx
     15 {
     16 
     17 ShaderExecutable9::ShaderExecutable9(const void *function, size_t length, IDirect3DPixelShader9 *executable)
     18     : ShaderExecutable(function, length)
     19 {
     20     mPixelExecutable = executable;
     21     mVertexExecutable = NULL;
     22 }
     23 
     24 ShaderExecutable9::ShaderExecutable9(const void *function, size_t length, IDirect3DVertexShader9 *executable)
     25     : ShaderExecutable(function, length)
     26 {
     27     mVertexExecutable = executable;
     28     mPixelExecutable = NULL;
     29 }
     30 
     31 ShaderExecutable9::~ShaderExecutable9()
     32 {
     33     SafeRelease(mVertexExecutable);
     34     SafeRelease(mPixelExecutable);
     35 }
     36 
     37 ShaderExecutable9 *ShaderExecutable9::makeShaderExecutable9(ShaderExecutable *executable)
     38 {
     39     ASSERT(HAS_DYNAMIC_TYPE(ShaderExecutable9*, executable));
     40     return static_cast<ShaderExecutable9*>(executable);
     41 }
     42 
     43 IDirect3DVertexShader9 *ShaderExecutable9::getVertexShader() const
     44 {
     45     return mVertexExecutable;
     46 }
     47 
     48 IDirect3DPixelShader9 *ShaderExecutable9::getPixelShader() const
     49 {
     50     return mPixelExecutable;
     51 }
     52 
     53 }