summaryrefslogtreecommitdiffstats
path: root/o3d/gpu/command_buffer/service/effect_d3d9.h
diff options
context:
space:
mode:
Diffstat (limited to 'o3d/gpu/command_buffer/service/effect_d3d9.h')
-rw-r--r--o3d/gpu/command_buffer/service/effect_d3d9.h139
1 files changed, 0 insertions, 139 deletions
diff --git a/o3d/gpu/command_buffer/service/effect_d3d9.h b/o3d/gpu/command_buffer/service/effect_d3d9.h
deleted file mode 100644
index db2df41..0000000
--- a/o3d/gpu/command_buffer/service/effect_d3d9.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright 2009, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-// This file contains the definition of the D3D9 versions of effect-related
-// resource classes.
-
-#ifndef GPU_COMMAND_BUFFER_SERVICE_EFFECT_D3D9_H_
-#define GPU_COMMAND_BUFFER_SERVICE_EFFECT_D3D9_H_
-
-#include <vector>
-#include "gpu/command_buffer/common/gapi_interface.h"
-#include "gpu/command_buffer/service/d3d9_utils.h"
-#include "gpu/command_buffer/service/resource.h"
-
-namespace command_buffer {
-namespace o3d {
-
-class GAPID3D9;
-class EffectD3D9;
-
-// ps_2_0 limit
-static const unsigned int kMaxSamplerUnits = 16;
-
-// D3D version of EffectParam. This class keeps a reference to the D3D effect.
-class EffectParamD3D9: public EffectParam {
- public:
- EffectParamD3D9(effect_param::DataType data_type,
- EffectD3D9 *effect,
- D3DXHANDLE handle);
- virtual ~EffectParamD3D9();
-
- // Sets the data into the D3D effect parameter.
- bool SetData(GAPID3D9 *gapi, unsigned int size, const void * data);
-
- // Gets the description of the parameter.
- bool GetDesc(unsigned int size, void *data);
-
- // Resets the effect back-pointer. This is called when the effect gets
- // destroyed, to invalidate the parameter.
- void ResetEffect() { effect_ = NULL; }
-
- static EffectParamD3D9 *Create(EffectD3D9 *effect, D3DXHANDLE handle);
- private:
- EffectD3D9 *effect_;
- D3DXHANDLE handle_;
- unsigned int sampler_unit_count_;
- scoped_array<unsigned int> sampler_units_;
-};
-
-// D3D9 version of Effect.
-class EffectD3D9 : public Effect {
- public:
- EffectD3D9(GAPID3D9 *gapi,
- ID3DXEffect *d3d_effect,
- ID3DXConstantTable *fs_constant_table,
- IDirect3DVertexShader9 *d3d_vertex_shader);
- virtual ~EffectD3D9();
- // Compiles and creates an effect from source code.
- static EffectD3D9 *Create(GAPID3D9 *gapi,
- const String &effect_code,
- const String &vertex_program_entry,
- const String &fragment_program_entry);
- // Applies the effect states (vertex shader, pixel shader) to D3D.
- bool Begin();
- // Resets the effect states (vertex shader, pixel shader) to D3D.
- void End();
- // Commits parameters to D3D, if they were modified while the effect is
- // active.
- bool CommitParameters();
-
- // Gets the number of parameters in the effect.
- unsigned int GetParamCount();
- // Creates an effect parameter with the specified index.
- EffectParamD3D9 *CreateParam(unsigned int index);
- // Creates an effect parameter of the specified name.
- EffectParamD3D9 *CreateParamByName(const char *name);
- // Gets the number of stream inputs for the effect.
- unsigned int GetStreamCount();
- // Gets the stream data with the specified index.
- bool GetStreamDesc(unsigned int index, unsigned int size, void *data);
- private:
- typedef std::vector<EffectParamD3D9 *> ParamList;
- typedef std::vector<effect_stream::Desc> StreamList;
-
- // Links a param into this effect.
- void LinkParam(EffectParamD3D9 *param);
- // Unlinks a param into this effect.
- void UnlinkParam(EffectParamD3D9 *param);
- // Sets sampler states.
- bool SetSamplers();
- // Sets streams vector.
- bool SetStreams();
-
- GAPID3D9* gapi_;
- ID3DXEffect *d3d_effect_;
- IDirect3DVertexShader9 *d3d_vertex_shader_;
- ID3DXConstantTable *fs_constant_table_;
- ParamList params_;
- StreamList streams_;
- bool sync_parameters_;
- ResourceId samplers_[kMaxSamplerUnits];
-
- friend class EffectParamD3D9;
- DISALLOW_COPY_AND_ASSIGN(EffectD3D9);
-};
-
-} // namespace o3d
-} // namespace command_buffer
-
-#endif // GPU_COMMAND_BUFFER_SERVICE_EFFECT_D3D9_H_