Home | History | Annotate | Download | only in renderer
      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 
     18 ShaderExecutable9::ShaderExecutable9(const void *function, size_t length, IDirect3DPixelShader9 *executable)
     19     : ShaderExecutable(function, length)
     20 {
     21     mPixelExecutable = executable;
     22     mVertexExecutable = NULL;
     23 }
     24 
     25 ShaderExecutable9::ShaderExecutable9(const void *function, size_t length, IDirect3DVertexShader9 *executable)
     26     : ShaderExecutable(function, length)
     27 {
     28     mVertexExecutable = executable;
     29     mPixelExecutable = NULL;
     30 }
     31 
     32 ShaderExecutable9::~ShaderExecutable9()
     33 {
     34     if (mVertexExecutable)
     35     {
     36         mVertexExecutable->Release();
     37     }
     38     if (mPixelExecutable)
     39     {
     40         mPixelExecutable->Release();
     41     }
     42 }
     43 
     44 ShaderExecutable9 *ShaderExecutable9::makeShaderExecutable9(ShaderExecutable *executable)
     45 {
     46     ASSERT(HAS_DYNAMIC_TYPE(ShaderExecutable9*, executable));
     47     return static_cast<ShaderExecutable9*>(executable);
     48 }
     49 
     50 IDirect3DVertexShader9 *ShaderExecutable9::getVertexShader() const
     51 {
     52     return mVertexExecutable;
     53 }
     54 
     55 IDirect3DPixelShader9 *ShaderExecutable9::getPixelShader() const
     56 {
     57     return mPixelExecutable;
     58 }
     59 
     60 }