#include "dawn/native/RenderEncoderBase.h"
#include <math.h>
#include <cstring>
#include <utility>
#include "dawn/common/Constants.h"
#include "dawn/common/Log.h"
#include "dawn/native/Buffer.h"
#include "dawn/native/CommandEncoder.h"
#include "dawn/native/CommandValidation.h"
#include "dawn/native/Commands.h"
#include "dawn/native/Device.h"
#include "dawn/native/RenderPipeline.h"
#include "dawn/native/ValidationUtils_autogen.h"
namespace dawn::native {
RenderEncoderBase::RenderEncoderBase(DeviceBase* device,
const char* label,
EncodingContext* encodingContext,
Ref<AttachmentState> attachmentState,
bool depthReadOnly,
bool stencilReadOnly)
: … { … }
RenderEncoderBase::RenderEncoderBase(DeviceBase* device,
EncodingContext* encodingContext,
ErrorTag errorTag,
const char* label)
: … { … }
void RenderEncoderBase::DestroyImpl() { … }
const AttachmentState* RenderEncoderBase::GetAttachmentState() const { … }
bool RenderEncoderBase::IsDepthReadOnly() const { … }
bool RenderEncoderBase::IsStencilReadOnly() const { … }
uint64_t RenderEncoderBase::GetDrawCount() const { … }
Ref<AttachmentState> RenderEncoderBase::AcquireAttachmentState() { … }
void RenderEncoderBase::APIDraw(uint32_t vertexCount,
uint32_t instanceCount,
uint32_t firstVertex,
uint32_t firstInstance) { … }
void RenderEncoderBase::APIDrawIndexed(uint32_t indexCount,
uint32_t instanceCount,
uint32_t firstIndex,
int32_t baseVertex,
uint32_t firstInstance) { … }
void RenderEncoderBase::APIDrawIndirect(BufferBase* indirectBuffer, uint64_t indirectOffset) { … }
void RenderEncoderBase::APIDrawIndexedIndirect(BufferBase* indirectBuffer,
uint64_t indirectOffset) { … }
void RenderEncoderBase::APIMultiDrawIndirect(BufferBase* indirectBuffer,
uint64_t indirectOffset,
uint32_t maxDrawCount,
BufferBase* drawCountBuffer,
uint64_t drawCountBufferOffset) { … }
void RenderEncoderBase::APIMultiDrawIndexedIndirect(BufferBase* indirectBuffer,
uint64_t indirectOffset,
uint32_t maxDrawCount,
BufferBase* drawCountBuffer,
uint64_t drawCountBufferOffset) { … }
void RenderEncoderBase::APISetPipeline(RenderPipelineBase* pipeline) { … }
void RenderEncoderBase::APISetIndexBuffer(BufferBase* buffer,
wgpu::IndexFormat format,
uint64_t offset,
uint64_t size) { … }
void RenderEncoderBase::APISetVertexBuffer(uint32_t slot,
BufferBase* buffer,
uint64_t offset,
uint64_t size) { … }
void RenderEncoderBase::APISetBindGroup(uint32_t groupIndexIn,
BindGroupBase* group,
uint32_t dynamicOffsetCount,
const uint32_t* dynamicOffsets) { … }
}