Skip to content

Conversation

@HeliumAnt
Copy link
Contributor

@HeliumAnt HeliumAnt commented Nov 2, 2024

TODO:

  • Fix Windows build
    • Add SDL_image to build
    • Add raylib to build
    • Rebuild allegro
  • Some sort of gpu memory management, otherwise this is a gigantic vram memory leak on scene change
  • Fix UnseenLayer not Drawing
  • Fix translucent UI elements
  • Documentation :)
  • Split screen unseen layer at seams and screen edge Scaled scenelayer upload
  • Space station is rotating the wrong way round
  • Glow strength
  • Rerun background removal
  • [ ] Primitives (will do in followup PR)

NOTE: This VERY PROBABLY to DEFINITELY breaks online Multiplayer

General Fixes

  • Fixed allegro palettes being 6bit/color
  • Retracted all allegro file interaction privileges, any image loading is now handled by SDL_image. (allegro likes to mess with colors, and does not load alpha values)
  • Made MASK_COLOR_32 useful, by making it be 0 (black, alpha 0)

GPU Drawing

  • Added raylib for gl abstraction (does have some problems with state management, but is workable, may need to reimplement at some point)
  • Infinite FPS
  • Added StaticSceneLayer for non drawing layers (i.e. SLBackground, and TitleScreen nebula)
  • Moved Main Menu Background to GPU
  • Added Alpha channel to MainMenu Bitmaps
  • SceneLayer drawing is pretty much entirely GPU now, any dynamic SceneLayers (everything other than SLBackground basically).
  • Big scenes will be drawn tiled, since they may otherwise not fit into vram (Refinery Assault uses ~800MB VRAM (technically not necessary, but this should make multistage FOW easier)
  • Any DrawTrans is gpu drawn (except primitives, that's whole new can of fish)
  • Made shaders loadable entities (rn still not using that fact particularly well, but oh well)

@HeliumAnt HeliumAnt marked this pull request as ready for review November 3, 2024 04:09
…incorrect palettes so they lose palette privilege"

FFmpeg fucked these up so need to redo them, current version (v7.1) does
that correctly

This reverts commit e4eaca6.
(These are using incredibly cursed palettes and are never used outside a
32 bit context so shouldn't be indexed)
@Causeless
Copy link
Contributor

Very nice work! At this rate Release 8 CC will practically be a modern game with a modern architecture 💯

I tried before the tiled drawing was implemented and there were some perf issues due to refinery assault's huge map, so now that that's done I'll try to test this again soon. Only other comment is that the clamp fix should be cherry-picked to another branch, as even though it's a fix it seems to regress crouching behaviour. I'll do that if you don't get to it by the time I do, so don't worry about it too much

@Causeless Causeless added this pull request to the merge queue Nov 16, 2024
Merged via the queue into development with commit 0503ca1 Nov 16, 2024
4 checks passed
@Causeless Causeless deleted the gpu-scenelayers branch November 16, 2024 17:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants