mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-14 15:46:28 +00:00
Change Sampler creation to use a descriptor instead of a builder
This commit is contained in:
committed by
Corentin Wallez
parent
a6416543a4
commit
1ae19e8276
@@ -86,8 +86,8 @@ namespace backend { namespace opengl {
|
||||
RenderPipelineBase* Device::CreateRenderPipeline(RenderPipelineBuilder* builder) {
|
||||
return new RenderPipeline(builder);
|
||||
}
|
||||
SamplerBase* Device::CreateSampler(SamplerBuilder* builder) {
|
||||
return new Sampler(builder);
|
||||
SamplerBase* Device::CreateSamplerImpl(const nxt::SamplerDescriptor* descriptor) {
|
||||
return new Sampler(this, descriptor);
|
||||
}
|
||||
ShaderModuleBase* Device::CreateShaderModule(ShaderModuleBuilder* builder) {
|
||||
return new ShaderModule(builder);
|
||||
|
||||
@@ -97,13 +97,15 @@ namespace backend { namespace opengl {
|
||||
RenderPassDescriptorBase* CreateRenderPassDescriptor(
|
||||
RenderPassDescriptorBuilder* builder) override;
|
||||
RenderPipelineBase* CreateRenderPipeline(RenderPipelineBuilder* builder) override;
|
||||
SamplerBase* CreateSampler(SamplerBuilder* builder) override;
|
||||
ShaderModuleBase* CreateShaderModule(ShaderModuleBuilder* builder) override;
|
||||
SwapChainBase* CreateSwapChain(SwapChainBuilder* builder) override;
|
||||
TextureBase* CreateTexture(TextureBuilder* builder) override;
|
||||
TextureViewBase* CreateTextureView(TextureViewBuilder* builder) override;
|
||||
|
||||
void TickImpl() override;
|
||||
|
||||
private:
|
||||
SamplerBase* CreateSamplerImpl(const nxt::SamplerDescriptor* descriptor) override;
|
||||
};
|
||||
|
||||
class BindGroup : public BindGroupBase {
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
#include "backend/opengl/SamplerGL.h"
|
||||
|
||||
#include "backend/opengl/OpenGLBackend.h"
|
||||
#include "common/Assert.h"
|
||||
|
||||
namespace backend { namespace opengl {
|
||||
@@ -70,14 +71,15 @@ namespace backend { namespace opengl {
|
||||
|
||||
} // namespace
|
||||
|
||||
Sampler::Sampler(SamplerBuilder* builder) : SamplerBase(builder) {
|
||||
Sampler::Sampler(Device* device, const nxt::SamplerDescriptor* descriptor)
|
||||
: SamplerBase(device, descriptor) {
|
||||
glGenSamplers(1, &mHandle);
|
||||
glSamplerParameteri(mHandle, GL_TEXTURE_MAG_FILTER, MagFilterMode(builder->GetMagFilter()));
|
||||
glSamplerParameteri(mHandle, GL_TEXTURE_MAG_FILTER, MagFilterMode(descriptor->magFilter));
|
||||
glSamplerParameteri(mHandle, GL_TEXTURE_MIN_FILTER,
|
||||
MinFilterMode(builder->GetMinFilter(), builder->GetMipMapFilter()));
|
||||
glSamplerParameteri(mHandle, GL_TEXTURE_WRAP_R, WrapMode(builder->GetAddressModeW()));
|
||||
glSamplerParameteri(mHandle, GL_TEXTURE_WRAP_S, WrapMode(builder->GetAddressModeU()));
|
||||
glSamplerParameteri(mHandle, GL_TEXTURE_WRAP_T, WrapMode(builder->GetAddressModeV()));
|
||||
MinFilterMode(descriptor->minFilter, descriptor->mipmapFilter));
|
||||
glSamplerParameteri(mHandle, GL_TEXTURE_WRAP_R, WrapMode(descriptor->addressModeW));
|
||||
glSamplerParameteri(mHandle, GL_TEXTURE_WRAP_S, WrapMode(descriptor->addressModeU));
|
||||
glSamplerParameteri(mHandle, GL_TEXTURE_WRAP_T, WrapMode(descriptor->addressModeV));
|
||||
}
|
||||
|
||||
GLuint Sampler::GetHandle() const {
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace backend { namespace opengl {
|
||||
|
||||
class Sampler : public SamplerBase {
|
||||
public:
|
||||
Sampler(SamplerBuilder* builder);
|
||||
Sampler(Device* device, const nxt::SamplerDescriptor* descriptor);
|
||||
|
||||
GLuint GetHandle() const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user