Some progress
This commit is contained in:
23
util/util.c
23
util/util.c
@@ -3,14 +3,25 @@
|
||||
//
|
||||
|
||||
#include "util.h"
|
||||
#include "../tiles/tile.h"
|
||||
|
||||
//The window we'll be rendering to
|
||||
SDL_Window *window = NULL;
|
||||
volatile bool running = true;
|
||||
|
||||
//The surface contained by the window
|
||||
SDL_Renderer *renderer = NULL;
|
||||
|
||||
SDL_Texture* createFlippedTexture(SDL_Renderer* renderer, SDL_Texture* src, SDL_RendererFlip flip) {
|
||||
int w, h;
|
||||
SDL_QueryTexture(src, NULL, NULL, &w, &h);
|
||||
|
||||
SDL_Texture *renderTarget = SDL_GetRenderTarget(renderer);
|
||||
|
||||
SDL_Texture* target = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, w, h);
|
||||
SDL_SetRenderTarget(renderer, target);
|
||||
SDL_RenderCopyEx(renderer, src, NULL, NULL, 0, NULL, flip);
|
||||
SDL_SetRenderTarget(renderer, NULL);
|
||||
SDL_SetRenderTarget(renderer, renderTarget);
|
||||
|
||||
return target;
|
||||
}
|
||||
@@ -18,11 +29,12 @@ SDL_Texture* createFlippedTexture(SDL_Renderer* renderer, SDL_Texture* src, SDL_
|
||||
SDL_Texture* createRotatedTexture(SDL_Renderer* renderer, SDL_Texture* src, double angle) {
|
||||
int w, h;
|
||||
SDL_QueryTexture(src, NULL, NULL, &w, &h);
|
||||
SDL_Texture *renderTarget = SDL_GetRenderTarget(renderer);
|
||||
|
||||
SDL_Texture* target = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, w, h);
|
||||
SDL_SetRenderTarget(renderer, target);
|
||||
SDL_RenderCopyEx(renderer, src, NULL, NULL, angle, NULL, SDL_FLIP_NONE);
|
||||
SDL_SetRenderTarget(renderer, NULL);
|
||||
SDL_SetRenderTarget(renderer, renderTarget);
|
||||
|
||||
return target;
|
||||
}
|
||||
@@ -53,3 +65,10 @@ SDL_Texture* ScaleTexture(SDL_Renderer* renderer, SDL_Texture* src, int newWidth
|
||||
|
||||
return scaledTex;
|
||||
}
|
||||
|
||||
void DrawThickRect(SDL_Renderer* renderer, SDL_Rect rect, int thickness) {
|
||||
for (int i = 0; i < thickness; i++) {
|
||||
SDL_Rect r = { rect.x - i, rect.y - i, rect.w + i * 2, rect.h + i * 2 };
|
||||
SDL_RenderDrawRect(renderer, &r);
|
||||
}
|
||||
}
|
||||
|
@@ -6,6 +6,12 @@
|
||||
#define FACTORYGAME_UTIL_H
|
||||
|
||||
#include <SDL2/SDL.h>
|
||||
//The window we'll be rendering to
|
||||
extern SDL_Window *window;
|
||||
extern volatile bool running;
|
||||
|
||||
//The surface contained by the window
|
||||
extern SDL_Renderer *renderer;
|
||||
|
||||
typedef enum {
|
||||
ORIENT_LEFT_DOWN,
|
||||
@@ -25,4 +31,6 @@ SDL_Texture *createFlippedTexture(SDL_Renderer *renderer, SDL_Texture *src, SDL_
|
||||
|
||||
SDL_Texture* ScaleTexture(SDL_Renderer* renderer, SDL_Texture* src, int newWidth, int newHeight);
|
||||
|
||||
void DrawThickRect(SDL_Renderer* renderer, SDL_Rect rect, int thickness);
|
||||
|
||||
#endif //FACTORYGAME_UTIL_H
|
||||
|
Reference in New Issue
Block a user