WebGPURenderPipelineDescriptor.h [plain text]
#pragma once
#if ENABLE(WEBGPU)
#include "WebGPUObject.h"
#include "WebGPURenderPipelineColorAttachmentDescriptor.h"
#include <wtf/Vector.h>
namespace WebCore {
class GPUFunction;
class GPURenderPipelineDescriptor;
class WebGPUFunction;
class WebGPURenderPipelineColorAttachmentDescriptor;
class WebGPURenderPipelineDescriptor : public WebGPUObject {
public:
virtual ~WebGPURenderPipelineDescriptor();
static Ref<WebGPURenderPipelineDescriptor> create();
RefPtr<WebGPUFunction> vertexFunction() const;
void setVertexFunction(RefPtr<WebGPUFunction>);
RefPtr<WebGPUFunction> fragmentFunction() const;
void setFragmentFunction(RefPtr<WebGPUFunction>);
Vector<RefPtr<WebGPURenderPipelineColorAttachmentDescriptor>> colorAttachments();
unsigned long depthAttachmentPixelFormat() const;
void setDepthAttachmentPixelFormat(unsigned long);
void reset();
GPURenderPipelineDescriptor* renderPipelineDescriptor() { return m_renderPipelineDescriptor.get(); }
private:
WebGPURenderPipelineDescriptor();
RefPtr<WebGPUFunction> m_vertexFunction;
RefPtr<WebGPUFunction> m_fragmentFunction;
Vector<RefPtr<WebGPURenderPipelineColorAttachmentDescriptor>> m_colorAttachmentDescriptors;
RefPtr<GPURenderPipelineDescriptor> m_renderPipelineDescriptor;
};
}
#endif