vulkan: properly implement samplers

This commit is contained in:
niki
2022-08-01 18:51:09 +02:00
parent 7bbc2888e2
commit dcea056fcb
8 changed files with 142 additions and 38 deletions
+3 -4
View File
@@ -20,10 +20,12 @@ public:
virtual bool loadVolatile() override;
virtual void unloadVolatile() override;
void setSamplerState(const SamplerState &s) override;
void copyFromBuffer(graphics::Buffer* source, size_t sourceoffset, int sourcewidth, size_t size, int slice, int mipmap, const Rect& rect) override;
void copyToBuffer(graphics::Buffer* dest, int slice, int mipmap, const Rect& rect, size_t destoffset, int destwidth, size_t size) override;
ptrdiff_t getRenderTargetHandle() const override { return (ptrdiff_t)textureImage; };
ptrdiff_t getRenderTargetHandle() const override { return (ptrdiff_t)textureImageView; };
ptrdiff_t getSamplerHandle() const override { return (ptrdiff_t)textureSampler; };
void uploadByteData(PixelFormat pixelformat, const void* data, size_t size, int level, int slice, const Rect& r) override;
@@ -32,12 +34,9 @@ public:
int getMSAA() const override { return 0; };
ptrdiff_t getHandle() const override { return (ptrdiff_t)textureImage; }
VkImageView getImageView() const { return textureImageView; }
VkSampler getSampler() const { return textureSampler; }
private:
void createTextureImageView();
void createTextureSampler();
void clear(bool white);
VkClearColorValue getClearValue(bool white);