惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
GbyAI
GbyAI
aimingoo的专栏
aimingoo的专栏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
腾讯CDC
博客园 - Franky
Engineering at Meta
Engineering at Meta
C
Check Point Blog
T
The Blog of Author Tim Ferriss
有赞技术团队
有赞技术团队
Microsoft Azure Blog
Microsoft Azure Blog
MyScale Blog
MyScale Blog
I
InfoQ
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
The GitHub Blog
The GitHub Blog
N
Netflix TechBlog - Medium
Last Week in AI
Last Week in AI
S
SegmentFault 最新的问题
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
WordPress大学
WordPress大学

Martin Owens activity

Martin Owens deleted project branch average-color-divide at Inkscape / inkscape Fix divide-by-zero crash when using calligraphy tool (!7923) · Merge requests · Inkscape / inkscape · GitLab Add selection file to bypass Windows command length limits (correction) (865df7a5) · Commits · Inkscape / inkscape · GitLab Draft: Fix AppImage crashing during save on older distros (!7922) · Merge requests · Inkscape / inkscape · GitLab e71fa7f8e0858aab87b7fc0814a30a8c88da9b43 to fe225a6b9e1042c7221d95173be22a02b3725337 · Martin Owens / inkscape · GitLab 403 Forbidden on Inkscape web server (#693) · Issues · Inkscape / inkscape-web · GitLab 403 Forbidden on Inkscape web server (#13509) · Issues · Inkscape / Inbox · GitLab Add selection file to bypass Windows command length limits (correction) (!7917) · 合并请求 · Inkscape / inkscape · GitLab Non-vertical axonometric axis implementation (!7912) · Merge requests · Inkscape / inkscape · GitLab Update split mode on tab switch (!7915) · Merge requests · Inkscape / inkscape · GitLab inset/offset as app functions so they can be used from CLI (!7914) · Merge requests · Inkscape / inkscape · GitLab Performace regresion in last month (#5879) · Issues · Inkscape / inkscape · GitLab [Regression] Right-aligned text has a new gap in 1.4.4 (#6130) · Issues · Inkscape / inkscape · GitLab [Regression] Right-aligned text has a new gap in 1.4.4 (#13498) · Issues · Inkscape / Inbox · GitLab c503804e014994d611de1b225bee8158c06448a8 to a4588d8ead1e7049b90c5a126962746ed286ab17 · Inkscape / inkscape-web · GitLab Validate the extensions of signature file uploads (a4588d8e) · 提交 · Inkscape / inkscape-web · GitLab Allow color conversions using static arrays instead of just vectors (e71fa7f8) · 提交 · Martin Owens / inkscape · GitLab Speed up ungroup on thousands of items (!7908) · Merge requests · Inkscape / inkscape · GitLab Incorrect handling of FontMatrix and transformation matrices with internal PDF import (#4845) · Issues · Inkscape / inkscape · GitLab Handling edge case of negative fonts in PDF (59040229) · 提交 · Inkscape / inkscape · GitLab Handling edge case of negative fonts in PDF (!7911) · 合并请求 · Inkscape / inkscape · GitLab Allow color conversions using static arrays instead of just vectors (33e65d1b) · Commits · Martin Owens / inkscape · GitLab Allow color conversions using static arrays instead of just vectors (9be5f867) · Commits · Martin Owens / inkscape · GitLab a9672ea1dff483b5b3aa8c6b5d88cd223001bef5 to 512a5e57602ac52e1d35782a7dcebae04262b2b8 · Martin Owens / inkscape · GitLab Add selection file to bypass Windows command length limits (!7905) · 合并请求 · Inkscape / inkscape · GitLab Revert Pango label changes (1.4.x) (!7907) · 合并请求 · Inkscape / inkscape · GitLab Crash on selecting a `<text>` object without a `<tspan>` inside (#5462) · Issues · Inkscape / inkscape · GitLab Fix breakage with Ubuntu 26.04 CI (!7904) · 合并请求 · Inkscape / inkscape · GitLab c673fdd5148253276826d4eda3951daaefb82607 to 356b31383ba324396a225686613236484305533d · Martin Owens / inkscape · GitLab Revert Text tool cursor changes (1.4.x) (!7903) · 合并请求 · Inkscape / inkscape · GitLab
8411e3936bec7b9f78c399c3ceffcc97efc96e3e to 39242e88e3379...
Martin Owens · 2026-06-29 · via Martin Owens activity

Commits on Source 14

  • New image pixel access and pixel filters · b2a0bf98
    Martin Owens authored
    To support more color channels, and greater flexibility in our rendering
    engine, this new code impliments a new API for accessing pixel data in a
    cairo surface and expands it's capabilities so that they can work with
    floating point pixel data as well as CMYKA (5 channel) interpolations.
    
    The new interface makes heavy use of compile time templating for channel count
    and cairo surface formats.
    
    The primary use of this API is for filters. Each filter which depends on
    non-cairo functionality is recoded to use this new API and split out from
    their svg filter primitive and display object files so they can be unit tested.
    
    Threading and dispatch pool are held as light copies until the refactoring is
    completed and we can copy them to a central utility instead.
    
    Assistance from PBS (squashed):
    
    * Use requires instead of run-time checks.
    * Use more modern _v/_t instead of ::value/::type.
    * Fix const T* memory() calling itself in infinite loop.
    * Make some functions static (_primary_pos, _bilinear_interpolate).
    * Make _transform std::optional.
    * Convert G_BYTE_ORDER == G_LITTLE_ENDIAN to if constexpr, revealing
      missing glib.h header.
    * Use safemod for wrapping.
  • Build surface management engine · d6829e9e
    Martin Owens authored
    To contain the multiple cairo surfaces and integrate with the pixel access code
    a new Surface class is made that stores references to cairo surfaces.
    
    PixelAccess objects of the right format can be run with filters to control the
    surface at a pixel by pixel level.
    
    A host of new tests are adding for each of the filters to make sure PixelAccess
    integration is correct for each one of them.
    
    Other Changes
    
     * Add forward declaration to colors API to smooth importing
  • Build context drawing engine · 6198b765
    Martin Owens authored
    We wrap the cairo context with our own multi-context engine
    which keeps track of the color space, can paint multi-surface
    CMYK rasters onto each other as well as translate between
    Inkscape geom, path objects to cairo instructions.
    
    Added many tests for each of the functionalities in cairo context
    drawing.
    
    Add README to explain the local code structures.
  • Add Drawing Filter stack to render SVG Filter Primitives · d6629dc9
    Martin Owens authored
    The stack mostly backs onto PixelFilters, but also onto the Surface
    and Context where upstream functionality can provide the output.
    
    The ColorSpace for the filter primitives are tied into the rendering
    process so filters are rendered in the correct space.
    
    Drawing options are refactored to be more concise for future use.
  • Copy of display/drawing* code · 0630c6d2
    Martin Owens authored
    This copy from display allows the differences to be seen more easily.
    
    display/drawing* -> renderer/drawing/drawing*
    display/surface* -> renderer/drawing/drawing-area* (might not be needed)
    display/tags* -> renderer/drawing/drawing-item-tags*
    display/nr-style* -> renderer/drawing/drawing-style*
  • Refactor DrawingItem and the rest of the Drawing stack for new rendering engine · 63ca7826
    Martin Owens authored
    The process used for this refactoring was a light touch on the logic. But
    the namespaces, and somme processes that were incompatible with the new
    surface and pixel filters had to be changed.
    
    The RenderContext was changed to DrawingOptions to better express what it is
    and the various options from filters and other parts of the pipeline were
    added so they aren't being passed around in addition.
    
    Pull in all uses of SPStyle into the DrawingStyle parsing and remove DrawingItem
    style variables to provide consistancy and remove duplication.
  • Add test building 'code-builder' logging · 39242e88
    Martin Owens authored
    This tracks the traditional rendering display tree and prints out
    new rendering engine c++ code which can be used as tests. Combined
    with the make-test.sh command this can turn any svg file into a
    rendering unit test.
    
    Currently: Any PNG export will turn on logging. TODO: Make it a CLI option
    
    Exported tests come from the pdfoutput test suite.