Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / angle / src / libGLESv2 / renderer / d3d / d3d9 / ShaderExecutable9.cpp
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/d3d/d3d9/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     SafeRelease(mVertexExecutable);
35     SafeRelease(mPixelExecutable);
36 }
37
38 ShaderExecutable9 *ShaderExecutable9::makeShaderExecutable9(ShaderExecutable *executable)
39 {
40     ASSERT(HAS_DYNAMIC_TYPE(ShaderExecutable9*, executable));
41     return static_cast<ShaderExecutable9*>(executable);
42 }
43
44 IDirect3DVertexShader9 *ShaderExecutable9::getVertexShader() const
45 {
46     return mVertexExecutable;
47 }
48
49 IDirect3DPixelShader9 *ShaderExecutable9::getPixelShader() const
50 {
51     return mPixelExecutable;
52 }
53
54 }