Conversation
- Implemented bicubic sampling using the Mitchell–Netravali filter in the fine shader, enhancing image quality for high-resolution rendering. - Updated pixel center calculations to ensure accurate sampling. - Added a new test scene for bicubic image sampling and updated existing test cases to reflect changes in image extend modes. - Updated snapshot images to capture the new rendering results for bilinear and nearest neighbor modes. These changes improve the rendering quality and expand the testing coverage for image sampling techniques in the Ekrano project.
- Modified the control flow in the `cs_main` function to avoid unnecessary evaluations of the `search_link` function when `global_id.x` exceeds `config.n_clip`. - Replaced the conditional operator with explicit control flow for determining the `grandparent` variable, addressing issues with inactive lanes in some backends. These changes enhance the efficiency of the shader code and ensure better compatibility across different GPU backends.
- Introduced a new tinting system for images, allowing for alpha-mask and component-wise multiply modes. - Updated the `Scene` struct to manage image tinting, including methods to set and reset tints. - Enhanced the `Encoding` module to support tinted image encoding, with distinct draw tags for regular and tinted images. - Modified shaders to handle tinted images appropriately, ensuring correct rendering based on the selected tint mode. - Added tests to validate the functionality of image tinting and its effects on rendering. These changes improve the flexibility and visual capabilities of the rendering system in the Ekrano project.
- Removed the `src/cpu` directory from `ekrano_shaders`, eliminating handwritten CPU implementations of GPU compute stages. - Updated documentation and references throughout the project to reflect the removal of CPU fallbacks. - Adjusted the `Cargo.toml` and `README.md` files to clarify that only Slang compute sources are included in the `ekrano_shaders` crate. - Enhanced the copyright check script to exclude the deleted CPU shader files. These changes streamline the shader implementation, focusing solely on GPU-based rendering and improving overall project clarity.
- Introduced the `DropShadowOnly` filter primitive to the rendering system, allowing shadows without compositing the original layer. - Updated the `record_filter_effects` function to handle `DropShadowOnly` correctly, ensuring proper shadow rendering in nested scenarios. - Added unit tests to validate the behavior of `DropShadowOnly`, distinguishing it from regular drop shadows. - Included new snapshot images for various test cases involving the `DropShadowOnly` filter. These changes enhance the flexibility of shadow rendering in the Ekrano project, improving visual effects and testing coverage.
- Added support for gradient interpolation in both premultiplied and unpremultiplied alpha spaces, allowing for more flexible gradient rendering. - Updated the `add_ramp` function and related structures to accommodate the new interpolation alpha space parameter. - Introduced new tests to validate the behavior of gradients with different alpha interpolation settings, ensuring accurate rendering. - Included snapshot images for both premultiplied and unpremultiplied gradient tests. These changes improve the rendering capabilities of the Ekrano project, enhancing visual fidelity and testing coverage for gradient effects.
- Updated the binning shader to handle bins in 256-wide blocks, enhancing memory access patterns and preventing out-of-bounds errors. - Adjusted the coarse shader to utilize aligned bin counts, ensuring correct indexing and improved performance. - Enhanced the configuration structure to align bin headers based on the new binning logic. - Updated tests to reflect changes in binning behavior and ensure all bins render correctly. These changes optimize shader performance and improve the robustness of binning operations in the Ekrano project.
- Introduced the `FontEmbolden` struct to enable synthetic emboldening of glyphs, enhancing text rendering capabilities. - Updated the `GlyphRun` and related structures to include a new `font_embolden` field for specifying emboldening settings. - Added support for a `brush_transform` in the `DrawGlyphs` implementation, allowing for additional transformations on brush contents. - Enhanced the `GlyphCache` to accommodate emboldening parameters during glyph rendering. - Updated tests and added new snapshot images to validate the behavior of emboldened text and brush transformations. These changes improve the flexibility and visual fidelity of text rendering in the Ekrano project, expanding its capabilities for stylized typography.
- Updated the `draw_blurred_rounded_rect_in` method to include an `invert` parameter, allowing for the painting of the inverse blur coverage. - Modified the `encode_blurred_rounded_rect` function to pack the `invert` flag into the sign bit of the `std_dev` parameter. - Added tests to validate the behavior of the new `invert` functionality, ensuring correct rendering of inverted blurred rectangles. - Included new snapshot images for various test cases involving inverted blurred rounded rectangles. These changes improve the flexibility of the drawing system in the Ekrano project, enabling new visual effects such as inset box shadows.
- Added `LiveTextureId` and related structures to manage live textures within the rendering system. - Enhanced `PreparedFrame` and `PersistentState` to include fields for live atlas dimensions and data. - Updated `PipelineResources` to bind the live atlas texture and handle uploads for live texture data. - Modified shaders to accommodate live atlas sampling, ensuring correct rendering based on live texture states. - Introduced tests for live texture functionality, validating the behavior of live atlas uploads and rendering. These changes significantly enhance the rendering capabilities of the Ekrano project, allowing for dynamic texture updates and improved visual fidelity.
- Introduced a new module `decoration` to handle skip-ink text decorations, allowing for underlines and strikethroughs around glyph outlines. - Implemented the `decoration_rects` function to calculate decoration rectangles based on glyph outlines and transformations. - Enhanced the `DrawGlyphs` struct with a `render_decoration` method to facilitate the rendering of decorations with specified parameters. - Added tests for various decoration scenarios, including offset and size variations, ensuring accurate rendering of decorated text. - Included new snapshot images to validate the visual output of the decoration feature. These changes significantly enhance the text rendering capabilities of the Ekrano project, providing more options for stylized typography and improving visual fidelity.
…ents - Added new fields to `FrameStats`, `PreparedFrame`, and `PersistentState` to track image atlas updates and live texture metrics. - Introduced a dedicated `atlas_update` scheme for managing dirty image deposits and live texture copies, improving rendering efficiency. - Updated `PipelineResources` and `SchemeRenderer` to accommodate the new atlas update logic and ensure correct handling of live textures. - Enhanced `ImageCache` to manage resident images and their states more effectively, including eviction logic for stale entries. - Added tests to validate the behavior of the new atlas update and live texture functionalities, ensuring robust rendering performance. These changes significantly improve the rendering capabilities of the Ekrano project, enabling more efficient texture management and dynamic updates.
Pixel-center image sampling changed bitmap emoji output; clippy needed allow reasons, doc ticks, and simpler types. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.