feat(Image sampler filters) Adds Image filter options for rendering images (#9309) 930facea3f

* added filter type to draw batch

* c++ implementation of ImageSamplerOptions

* image sampler options now pushes correct for RiveRenderPaint

* wip

* OpenGL uses correct sample options

* now only one filter option that accounts for mip map

* d3d now uses sampler states options

* better way to get the filter option

* added mirror and inverse mirror options

* started using helper functions for retreiving sampler optiojnhs

* workaround for vulkn semaphore issue

* wip

* added filter type to draw batch

* c++ implementation of ImageSamplerOptions

* image sampler options now pushes correct for RiveRenderPaint

* wip

* OpenGL uses correct sample options

* now only one filter option that accounts for mip map

* d3d now uses sampler states options

* better way to get the filter option

* added mirror and inverse mirror options

* started using helper functions for retreiving sampler optiojnhs

* workaround for vulkn semaphore issue

* wip

* undo deleting empty descriptor

* properly packed image options

* removed uneeded checks

* more unit tests

* unreal image_filter_options integration, gm for image filters

* properly implement new draw functions for cgrender

* finish mege conflicts

* merge vulkan sampler options

* cherry-picked vulkan imp into branch

* initial metal

* clang-format

* d3d12 image filter options

* fixed d3d

* clang-format

* fixed mip filter for metal

* made every filter option act as similiar as possible

* addressed pr changes

* fixed tests

* empty commit to fix github

* fix: webgl renderers

* started addressing PR comments

* metal change for pr

* more pr stuff

* final PR address

* shader update per PR request

* rhi updat e

* added gm requested in pr

* made d3d12 work with more then 2000 sampler changes per flush

* pr comments

Co-authored-by: Chris Dalton <chris@rive.app>
Co-authored-by: Jonathon Copeland <jcopela4@gmail.com>
Co-authored-by: Luigi Rosso <luigi.rosso@gmail.com>
This commit is contained in:
blakdragan7
2025-05-29 05:36:59 +00:00
parent 6009196eae
commit 237f2c8d30
57 changed files with 1053 additions and 129 deletions

View File

@@ -23,8 +23,12 @@ public:
void transform(const Mat2D& transform) override;
void clipPath(RenderPath* path) override;
void drawPath(RenderPath* path, RenderPaint* paint) override;
void drawImage(const RenderImage*, BlendMode, float opacity) override;
void drawImage(const RenderImage*,
const rive::ImageSampler,
BlendMode,
float opacity) override;
void drawImageMesh(const RenderImage*,
const rive::ImageSampler,
rcp<RenderBuffer> vertices_f32,
rcp<RenderBuffer> uvCoords_f32,
rcp<RenderBuffer> indices_u16,

View File

@@ -240,6 +240,7 @@ void SkiaRenderer::clipPath(RenderPath* path)
}
void SkiaRenderer::drawImage(const RenderImage* image,
const rive::ImageSampler,
BlendMode blendMode,
float opacity)
{
@@ -253,6 +254,7 @@ void SkiaRenderer::drawImage(const RenderImage* image,
#define SKIA_BUG_13047
void SkiaRenderer::drawImageMesh(const RenderImage* image,
const rive::ImageSampler,
rcp<RenderBuffer> vertices,
rcp<RenderBuffer> uvCoords,
rcp<RenderBuffer> indices,