Skip to content

Pixel - Enhancement Wishlist #94

@dusk125

Description

@dusk125

All of the following is up for discussion.

Reworks

  • Colors Color refactor #93
  • Abstract the backend away (pixel.Window interface)
    • A user can still drop into the backend if they need/want (pixelui), but for normal operations they don't
    • opengl.Run should be replaced with pixel.Run
  • Lighten Sprite
  • Cleanup the mess that is interface.go; these interfaces should make sense/be understandable
  • Change things like pixel.R to be generic so the user doesn't have to be cast happy
    ex)
func R[U,V,W,X constraints.Float|constraints.Integer](minX U, minY V, maxX W, maxY X) Rect {
    return Rect{
        Min: Vec[U, V]{minX, minY},
        Max: Vec[W, X]{maxX, maxY},
    }
}
func V[U, V constraints.Float|constraints.Integer](x U, y V) Vec {
    return Vec{float64(x), float64(y)}
}
  • Use standard library pieces where possible (image.Image (image.RGBA) instead of pixel.PictureData
  • Try to limit heap allocations (hard due to the use of interfaces)
  • Rework batching to be more predictable
  • Add an option for flipping the y-axis Should the origin (x=0, y=0) remain in lower-left hand corner? #8
    • I think something funky is going on here with the model-view-projection matrices, I've done opengl stuff and haven't had to flip images when displaying them like Pixel does.
  • WASM support / validation

Features

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions