1d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com// 2358e88d786a5c48b45a28454861b7018ec39c95fshannon.woods@transgaming.com// Copyright (c) 2012-2013 The ANGLE Project Authors. All rights reserved. 3d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com// Use of this source code is governed by a BSD-style license that can be 4d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com// found in the LICENSE file. 5d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com// 6d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com 7d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com// ShaderExecutable9.cpp: Implements a D3D9-specific class to contain shader 8d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com// executable implementation details. 9d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com 10c7a4104957aa1f6fa36e4e9cf65d36b699eb05bdBrandon Jones#include "libGLESv2/renderer/d3d/d3d9/ShaderExecutable9.h" 11d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com 12d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com#include "common/debug.h" 13d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com 14d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.comnamespace rx 15d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com{ 16d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com 172275f9159895aefa0b9ae7deff08bc40b6f6ede8daniel@transgaming.comShaderExecutable9::ShaderExecutable9(const void *function, size_t length, IDirect3DPixelShader9 *executable) 187b18d0c45c43e19d2501a33f7f3c5bb66bf91f36daniel@transgaming.com : ShaderExecutable(function, length) 19d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com{ 20d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com mPixelExecutable = executable; 21d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com mVertexExecutable = NULL; 22d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com} 23d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com 242275f9159895aefa0b9ae7deff08bc40b6f6ede8daniel@transgaming.comShaderExecutable9::ShaderExecutable9(const void *function, size_t length, IDirect3DVertexShader9 *executable) 257b18d0c45c43e19d2501a33f7f3c5bb66bf91f36daniel@transgaming.com : ShaderExecutable(function, length) 26d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com{ 27d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com mVertexExecutable = executable; 28d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com mPixelExecutable = NULL; 29d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com} 30d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com 31d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.comShaderExecutable9::~ShaderExecutable9() 32d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com{ 33ea2286352f5eba47dfaa3e9ab418bbacfd1ba8a1Geoff Lang SafeRelease(mVertexExecutable); 34ea2286352f5eba47dfaa3e9ab418bbacfd1ba8a1Geoff Lang SafeRelease(mPixelExecutable); 35d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com} 36d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com 37d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.comShaderExecutable9 *ShaderExecutable9::makeShaderExecutable9(ShaderExecutable *executable) 38d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com{ 398b400b1e8d84c5b93dd151807504a3e4b90d1b21apatrick@chromium.org ASSERT(HAS_DYNAMIC_TYPE(ShaderExecutable9*, executable)); 40d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com return static_cast<ShaderExecutable9*>(executable); 41d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com} 42d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com 43358e88d786a5c48b45a28454861b7018ec39c95fshannon.woods@transgaming.comIDirect3DVertexShader9 *ShaderExecutable9::getVertexShader() const 44d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com{ 45d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com return mVertexExecutable; 46d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com} 47d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com 48358e88d786a5c48b45a28454861b7018ec39c95fshannon.woods@transgaming.comIDirect3DPixelShader9 *ShaderExecutable9::getPixelShader() const 49d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com{ 50d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com return mPixelExecutable; 51d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com} 52d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com 53d5d1019770f0de5dc1d8b356fa1df48019204378daniel@transgaming.com}