diff options
author | Brandon Jones <bajones@chromium.org> | 2014-08-25 17:02:59 -0700 |
---|---|---|
committer | Brandon Jones <bajones@chromium.org> | 2014-09-09 21:17:45 +0000 |
commit | c9610c51e9c02ba67c735ff449a70164cda12a60 (patch) | |
tree | 63a0225c7f6e8994563d18612ec16341322efd8e /src/libGLESv2/renderer/d3d/ProgramD3D.h | |
parent | eeb7b0e9038b0fc57ead6a491541548159855dc2 (diff) | |
download | angle-c9610c51e9c02ba67c735ff449a70164cda12a60.tar.gz |
Starting refactor of ProgramBinary
This is gonna take a while...
BUG=angle:731
Change-Id: Ief72c3361b6429f3f6e0bc2d2ea0810d523ff178
Reviewed-on: https://chromium-review.googlesource.com/215661
Tested-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Diffstat (limited to 'src/libGLESv2/renderer/d3d/ProgramD3D.h')
-rw-r--r-- | src/libGLESv2/renderer/d3d/ProgramD3D.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/libGLESv2/renderer/d3d/ProgramD3D.h b/src/libGLESv2/renderer/d3d/ProgramD3D.h new file mode 100644 index 00000000..3dd3b1f4 --- /dev/null +++ b/src/libGLESv2/renderer/d3d/ProgramD3D.h @@ -0,0 +1,57 @@ +// +// Copyright (c) 2014 The ANGLE Project Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// + +// ProgramD3D.h: Defines the rx::ProgramD3D class which implements rx::ProgramImpl. + +#ifndef LIBGLESV2_RENDERER_PROGRAMD3D_H_ +#define LIBGLESV2_RENDERER_PROGRAMD3D_H_ + +#include "libGLESv2/renderer/ProgramImpl.h" + +namespace gl +{ +struct LinkedUniform; +struct VertexFormat; +} + +namespace rx +{ + +class UniformStorage; + +class ProgramD3D : public ProgramImpl +{ + public: + ProgramD3D(rx::Renderer *renderer); + virtual ~ProgramD3D(); + + static ProgramD3D *makeProgramD3D(ProgramImpl *impl); + static const ProgramD3D *makeProgramD3D(const ProgramImpl *impl); + + Renderer *getRenderer() { return mRenderer; } + DynamicHLSL *getDynamicHLSL() { return mDynamicHLSL; } + + // D3D only + void initializeUniformStorage(const std::vector<gl::LinkedUniform*> &uniforms); + + const UniformStorage &getVertexUniformStorage() const { return *mVertexUniformStorage; } + const UniformStorage &getFragmentUniformStorage() const { return *mFragmentUniformStorage; } + + void reset(); + + private: + DISALLOW_COPY_AND_ASSIGN(ProgramD3D); + + Renderer *mRenderer; + DynamicHLSL *mDynamicHLSL; + + UniformStorage *mVertexUniformStorage; + UniformStorage *mFragmentUniformStorage; +}; + +} + +#endif // LIBGLESV2_RENDERER_PROGRAMD3D_H_ |