OGL: Support returning pipeline cache data

This commit is contained in:
Stenzek
2019-04-15 23:38:10 +10:00
parent 5cef09e383
commit 616ad378b7
6 changed files with 138 additions and 56 deletions

View File

@ -18,7 +18,7 @@ class OGLPipeline final : public AbstractPipeline
public:
explicit OGLPipeline(const GLVertexFormat* vertex_format,
const RasterizationState& rasterization_state, const DepthState& depth_state,
const BlendingState& blending_state, const PipelineProgram* program,
const BlendingState& blending_state, PipelineProgram* program,
GLenum gl_primitive);
~OGLPipeline() override;
@ -29,14 +29,16 @@ public:
const PipelineProgram* GetProgram() const { return m_program; }
bool HasVertexInput() const { return m_vertex_format != nullptr; }
GLenum GetGLPrimitive() const { return m_gl_primitive; }
static std::unique_ptr<OGLPipeline> Create(const AbstractPipelineConfig& config);
CacheData GetCacheData() const override;
static std::unique_ptr<OGLPipeline> Create(const AbstractPipelineConfig& config,
const void* cache_data, size_t cache_data_size);
private:
const GLVertexFormat* m_vertex_format;
RasterizationState m_rasterization_state;
DepthState m_depth_state;
BlendingState m_blending_state;
const PipelineProgram* m_program;
PipelineProgram* m_program;
GLenum m_gl_primitive;
};