mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2026-01-29 17:38:16 +03:00
Move from surfaces to the SDL render system
Ever since VVVVVV was initially ported to C++ in 2.0, it has used surfaces from SDL. The downside is, that's all software rendering. This commit moves most things off of surfaces, and all into GPU, by using textures and SDL_Renderer. Pixel-perfect collision has been kept by keeping a copy of sprites as surfaces. There's plans for pixel-perfect collision to use masks instead of reading pixel data directly, but that's out of scope for this commit. - `graphics.reloadresources()` is now called later in `main`, because textures cannot be created without a renderer. - This commit also removes a bunch of surface functions which are no longer needed. - This also recaches target textures in certain places for d3d9. - graphics.images was converted to a fixed-size array. - fillbox and fillboxabs use SDL_RenderDrawRect instead of drawing an outline using four filled rectangles - Update my name in the credits
This commit is contained in:
committed by
Misa Elizabeth Kai
parent
556e3a110a
commit
19b2a317f1
@@ -19,16 +19,15 @@ public:
|
||||
void ResizeToNearestMultiple(void);
|
||||
void GetWindowSize(int* x, int* y);
|
||||
|
||||
void UpdateScreen(SDL_Surface* buffer, SDL_Rect* rect);
|
||||
void FlipScreen(bool flipmode);
|
||||
|
||||
const SDL_PixelFormat* GetFormat(void);
|
||||
void RenderPresent();
|
||||
|
||||
void toggleFullScreen(void);
|
||||
void toggleScalingMode(void);
|
||||
void toggleLinearFilter(void);
|
||||
void toggleVSync(void);
|
||||
|
||||
void recacheTextures(void);
|
||||
|
||||
bool isForcedFullscreen(void);
|
||||
|
||||
bool isWindowed;
|
||||
@@ -39,8 +38,6 @@ public:
|
||||
|
||||
SDL_Window *m_window;
|
||||
SDL_Renderer *m_renderer;
|
||||
SDL_Texture *m_screenTexture;
|
||||
SDL_Surface* m_screen;
|
||||
};
|
||||
|
||||
#ifndef GAMESCREEN_DEFINITION
|
||||
|
||||
Reference in New Issue
Block a user