blob: 28c026a2ec14754f525ab8fbf569bff09716e8a5 [file] [log] [blame]
Brandon Jonesc9610c52014-08-25 17:02:59 -07001//
2// Copyright 2014 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6
7// ProgramImpl.h: Defines the abstract rx::ProgramImpl class.
8
9#ifndef LIBGLESV2_RENDERER_PROGRAMIMPL_H_
10#define LIBGLESV2_RENDERER_PROGRAMIMPL_H_
11
12#include "common/angleutils.h"
13#include "libGLESv2/Constants.h"
14#include "libGLESv2/ProgramBinary.h"
15
16namespace rx
17{
18
19class DynamicHLSL;
20class Renderer;
21
22class ProgramImpl
23{
24public:
25 virtual ~ProgramImpl() { }
26
27 // TODO: Temporary interfaces to ease migration. Remove soon!
28 virtual Renderer *getRenderer() = 0;
29 virtual DynamicHLSL *getDynamicHLSL() = 0;
30 virtual void initializeUniformStorage(const std::vector<gl::LinkedUniform*> &uniforms) = 0;
31
32 virtual void reset() = 0;
33};
34
35}
36
37#endif // LIBGLESV2_RENDERER_PROGRAMIMPL_H_