Add Device::CreateQueue() instead of the builder

We are changing all object creation to use descriptors but there is no
creation argument to pass for queue, so instead Device::CreateQueue
takes no argument.
This commit is contained in:
Corentin Wallez
2018-06-14 20:26:27 -04:00
committed by Corentin Wallez
parent 40e72d79ca
commit b703def640
35 changed files with 65 additions and 115 deletions

View File

@@ -76,8 +76,8 @@ namespace backend { namespace opengl {
PipelineLayoutBase* Device::CreatePipelineLayout(PipelineLayoutBuilder* builder) {
return new PipelineLayout(builder);
}
QueueBase* Device::CreateQueue(QueueBuilder* builder) {
return new Queue(builder);
ResultOrError<QueueBase*> Device::CreateQueueImpl() {
return new Queue(this);
}
RenderPassDescriptorBase* Device::CreateRenderPassDescriptor(
RenderPassDescriptorBuilder* builder) {
@@ -119,7 +119,7 @@ namespace backend { namespace opengl {
// Queue
Queue::Queue(QueueBuilder* builder) : QueueBase(builder) {
Queue::Queue(Device* device) : QueueBase(device) {
}
void Queue::Submit(uint32_t numCommands, CommandBuffer* const* commands) {

View File

@@ -93,7 +93,6 @@ namespace backend { namespace opengl {
DepthStencilStateBase* CreateDepthStencilState(DepthStencilStateBuilder* builder) override;
InputStateBase* CreateInputState(InputStateBuilder* builder) override;
PipelineLayoutBase* CreatePipelineLayout(PipelineLayoutBuilder* builder) override;
QueueBase* CreateQueue(QueueBuilder* builder) override;
RenderPassDescriptorBase* CreateRenderPassDescriptor(
RenderPassDescriptorBuilder* builder) override;
RenderPipelineBase* CreateRenderPipeline(RenderPipelineBuilder* builder) override;
@@ -105,6 +104,7 @@ namespace backend { namespace opengl {
void TickImpl() override;
private:
ResultOrError<QueueBase*> CreateQueueImpl() override;
ResultOrError<SamplerBase*> CreateSamplerImpl(
const nxt::SamplerDescriptor* descriptor) override;
};
@@ -121,7 +121,7 @@ namespace backend { namespace opengl {
class Queue : public QueueBase {
public:
Queue(QueueBuilder* builder);
Queue(Device* device);
// NXT API
void Submit(uint32_t numCommands, CommandBuffer* const* commands);