mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-14 15:46:28 +00:00
Use a descriptor for PipelineLayout (#206)
Adds support for structures inside descriptors.
This commit is contained in:
@@ -77,8 +77,9 @@ namespace backend { namespace opengl {
|
||||
InputStateBase* Device::CreateInputState(InputStateBuilder* builder) {
|
||||
return new InputState(builder);
|
||||
}
|
||||
PipelineLayoutBase* Device::CreatePipelineLayout(PipelineLayoutBuilder* builder) {
|
||||
return new PipelineLayout(builder);
|
||||
ResultOrError<PipelineLayoutBase*> Device::CreatePipelineLayoutImpl(
|
||||
const nxt::PipelineLayoutDescriptor* descriptor) {
|
||||
return new PipelineLayout(this, descriptor);
|
||||
}
|
||||
ResultOrError<QueueBase*> Device::CreateQueueImpl() {
|
||||
return new Queue(this);
|
||||
|
||||
@@ -35,7 +35,6 @@ namespace backend { namespace opengl {
|
||||
ComputePipelineBase* CreateComputePipeline(ComputePipelineBuilder* builder) override;
|
||||
DepthStencilStateBase* CreateDepthStencilState(DepthStencilStateBuilder* builder) override;
|
||||
InputStateBase* CreateInputState(InputStateBuilder* builder) override;
|
||||
PipelineLayoutBase* CreatePipelineLayout(PipelineLayoutBuilder* builder) override;
|
||||
RenderPassDescriptorBase* CreateRenderPassDescriptor(
|
||||
RenderPassDescriptorBuilder* builder) override;
|
||||
RenderPipelineBase* CreateRenderPipeline(RenderPipelineBuilder* builder) override;
|
||||
@@ -47,6 +46,8 @@ namespace backend { namespace opengl {
|
||||
void TickImpl() override;
|
||||
|
||||
private:
|
||||
ResultOrError<PipelineLayoutBase*> CreatePipelineLayoutImpl(
|
||||
const nxt::PipelineLayoutDescriptor* descriptor) override;
|
||||
ResultOrError<QueueBase*> CreateQueueImpl() override;
|
||||
ResultOrError<SamplerBase*> CreateSamplerImpl(
|
||||
const nxt::SamplerDescriptor* descriptor) override;
|
||||
|
||||
@@ -15,10 +15,12 @@
|
||||
#include "backend/opengl/PipelineLayoutGL.h"
|
||||
|
||||
#include "backend/BindGroupLayout.h"
|
||||
#include "backend/opengl/DeviceGL.h"
|
||||
|
||||
namespace backend { namespace opengl {
|
||||
|
||||
PipelineLayout::PipelineLayout(PipelineLayoutBuilder* builder) : PipelineLayoutBase(builder) {
|
||||
PipelineLayout::PipelineLayout(Device* device, const nxt::PipelineLayoutDescriptor* descriptor)
|
||||
: PipelineLayoutBase(device, descriptor) {
|
||||
GLuint uboIndex = 0;
|
||||
GLuint samplerIndex = 0;
|
||||
GLuint sampledTextureIndex = 0;
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace backend { namespace opengl {
|
||||
|
||||
class PipelineLayout : public PipelineLayoutBase {
|
||||
public:
|
||||
PipelineLayout(PipelineLayoutBuilder* builder);
|
||||
PipelineLayout(Device* device, const nxt::PipelineLayoutDescriptor* descriptor);
|
||||
|
||||
using BindingIndexInfo =
|
||||
std::array<std::array<GLuint, kMaxBindingsPerGroup>, kMaxBindGroups>;
|
||||
|
||||
@@ -21,8 +21,6 @@
|
||||
|
||||
namespace backend { namespace opengl {
|
||||
|
||||
class Device;
|
||||
|
||||
struct TextureFormatInfo {
|
||||
GLenum internalFormat;
|
||||
GLenum format;
|
||||
|
||||
Reference in New Issue
Block a user