summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/libANGLE/ProgramPipeline.h
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2018-10-26 10:28:24 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2018-10-26 10:28:24 +0000
commit00b2e45a97205975ee91aa43f00e3dbef1a8907b (patch)
treeed44e50bc893e87434d72470c2c809b1fb34de72 /src/3rdparty/angle/src/libANGLE/ProgramPipeline.h
parent9cd527bc1f384926985d63c741641316a66f17a4 (diff)
parente28e91ae99b8c3859899e04cc9370534c7c7b86d (diff)
Merge "Merge remote-tracking branch 'origin/5.12' into dev" into refs/staging/dev
Diffstat (limited to 'src/3rdparty/angle/src/libANGLE/ProgramPipeline.h')
-rw-r--r--src/3rdparty/angle/src/libANGLE/ProgramPipeline.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/3rdparty/angle/src/libANGLE/ProgramPipeline.h b/src/3rdparty/angle/src/libANGLE/ProgramPipeline.h
new file mode 100644
index 0000000000..2aac87c7b8
--- /dev/null
+++ b/src/3rdparty/angle/src/libANGLE/ProgramPipeline.h
@@ -0,0 +1,65 @@
+//
+// Copyright (c) 2017 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.
+//
+
+// ProgramPipeline.h: Defines the gl::ProgramPipeline class.
+// Implements GL program pipeline objects and related functionality.
+// [OpenGL ES 3.1] section 7.4 page 105.
+
+#ifndef LIBANGLE_PROGRAMPIPELINE_H_
+#define LIBANGLE_PROGRAMPIPELINE_H_
+
+#include <memory>
+
+#include "common/angleutils.h"
+#include "libANGLE/Debug.h"
+#include "libANGLE/RefCountObject.h"
+
+namespace rx
+{
+class GLImplFactory;
+class ProgramPipelineImpl;
+};
+
+namespace gl
+{
+class Context;
+class ProgramPipeline;
+
+class ProgramPipelineState final : angle::NonCopyable
+{
+ public:
+ ProgramPipelineState();
+ ~ProgramPipelineState();
+
+ const std::string &getLabel() const;
+
+ private:
+ friend class ProgramPipeline;
+
+ std::string mLabel;
+};
+
+class ProgramPipeline final : public RefCountObject, public LabeledObject
+{
+ public:
+ ProgramPipeline(rx::GLImplFactory *factory, GLuint handle);
+ ~ProgramPipeline() override;
+
+ Error onDestroy(const Context *context) override;
+
+ void setLabel(const std::string &label) override;
+ const std::string &getLabel() const override;
+
+ rx::ProgramPipelineImpl *getImplementation() const;
+
+ private:
+ std::unique_ptr<rx::ProgramPipelineImpl> mProgramPipeline;
+
+ ProgramPipelineState mState;
+};
+}
+
+#endif // LIBANGLE_PROGRAMPIPELINE_H_