WebGPURenderCommandEncoder.cpp [plain text]
#include "config.h"
#include "WebGPURenderCommandEncoder.h"
#if ENABLE(WEBGPU)
#include "GPUCommandBuffer.h"
#include "GPURenderCommandEncoder.h"
#include "GPURenderPassDescriptor.h"
#include "WebGPUBuffer.h"
#include "WebGPUCommandBuffer.h"
#include "WebGPUDepthStencilState.h"
#include "WebGPURenderPassDescriptor.h"
#include "WebGPURenderPipelineState.h"
#include "WebGPURenderingContext.h"
namespace WebCore {
Ref<WebGPURenderCommandEncoder> WebGPURenderCommandEncoder::create(WebGPURenderingContext* context, WebGPUCommandBuffer* buffer, WebGPURenderPassDescriptor* descriptor)
{
return adoptRef(*new WebGPURenderCommandEncoder(context, buffer, descriptor));
}
WebGPURenderCommandEncoder::WebGPURenderCommandEncoder(WebGPURenderingContext* context, WebGPUCommandBuffer* buffer, WebGPURenderPassDescriptor* descriptor)
: WebGPUObject(context)
{
m_renderCommandEncoder = buffer->commandBuffer()->createRenderCommandEncoder(descriptor->renderPassDescriptor());
}
WebGPURenderCommandEncoder::~WebGPURenderCommandEncoder() = default;
void WebGPURenderCommandEncoder::setRenderPipelineState(WebGPURenderPipelineState& pipelineState)
{
if (!m_renderCommandEncoder)
return;
m_renderCommandEncoder->setRenderPipelineState(pipelineState.renderPipelineState());
}
void WebGPURenderCommandEncoder::setDepthStencilState(WebGPUDepthStencilState& depthStencilState)
{
if (!m_renderCommandEncoder)
return;
m_renderCommandEncoder->setDepthStencilState(depthStencilState.depthStencilState());
}
void WebGPURenderCommandEncoder::setVertexBuffer(WebGPUBuffer& buffer, unsigned offset, unsigned index)
{
if (!m_renderCommandEncoder)
return;
m_renderCommandEncoder->setVertexBuffer(buffer.buffer(), offset, index);
}
void WebGPURenderCommandEncoder::setFragmentBuffer(WebGPUBuffer& buffer, unsigned offset, unsigned index)
{
if (!m_renderCommandEncoder)
return;
m_renderCommandEncoder->setFragmentBuffer(buffer.buffer(), offset, index);
}
void WebGPURenderCommandEncoder::drawPrimitives(unsigned type, unsigned start, unsigned count)
{
if (!m_renderCommandEncoder)
return;
m_renderCommandEncoder->drawPrimitives(type, start, count);
}
void WebGPURenderCommandEncoder::endEncoding()
{
if (!m_renderCommandEncoder)
return;
return m_renderCommandEncoder->endEncoding();
}
}
#endif