This commit is contained in:
huaqo-games
2025-03-18 10:33:10 +01:00
parent 1ee2deb190
commit afaf0c70a3
8 changed files with 5985 additions and 40 deletions
View File
BIN
View File
Binary file not shown.
Binary file not shown.
+5928
View File
File diff suppressed because it is too large Load Diff
+11
View File
@@ -0,0 +1,11 @@
#ifndef ASSET_H
#define ASSET_H
typedef struct {
const char* path;
float frameWidth;
float frameHeight;
float rotation;
} TextureAsset;
#endif // ASSET_H
+46
View File
@@ -0,0 +1,46 @@
#ifndef POSTFX_H
#define POSTFX_H
typedef struct {
Shader shader;
int resolutionLoc;
int strengthLoc;
float strength;
} PostProcessing;
PostProcessing CreatePostFX(const char* shaderPath, float strength){
PostProcessing postFX = {0};
postFX.shader = LoadShader(NULL, shaderPath);
if (postFX.shader.id == 0) {
TraceLog(LOG_ERROR, "Failed to load shader: %s", shaderPath);
return postFX;
}
postFX.strength = strength;
postFX.resolutionLoc = GetShaderLocation(postFX.shader, "resolution");
postFX.strengthLoc = GetShaderLocation(postFX.shader, "strength");
Vector2 resolution = { (float)GetScreenWidth(), (float)GetScreenHeight() };
SetShaderValue(postFX.shader, postFX.resolutionLoc, &resolution, SHADER_UNIFORM_VEC2);
return postFX;
}
void UpdatePostFX(PostProcessing *postFX){
if (postFX->shader.id == 0) return;
SetShaderValue(postFX->shader, postFX->strengthLoc, &postFX->strength, SHADER_UNIFORM_FLOAT);
Vector2 resolution = { (float)GetScreenWidth(), (float)GetScreenHeight() };
SetShaderValue(postFX->shader, postFX->resolutionLoc, &resolution, SHADER_UNIFORM_VEC2);
}
void RenderPostFX(PostProcessing *postFX, RenderTexture2D *target){
BeginShaderMode(postFX->shader);
DrawTextureRec(target->texture, (Rectangle){ 0, 0, target->texture.width, target->texture.height }, (Vector2){ 0, 0 }, WHITE);
EndShaderMode();
}
void UnloadPostFX(PostProcessing *postFX){
if (postFX->shader.id == 0) return;
UnloadShader(postFX->shader);
}
#endif // POSTFX_H
-40
View File
@@ -1,40 +0,0 @@
#ifndef SHADER_H
#define SHADER_H
typedef struct {
Shader shader;
int resolutionLoc;
int strengthLoc;
float strength;
} VignetteShader;
VignetteShader CreateShader(const char* shaderPath, float strength){
VignetteShader vignetteShader = {0};
vignetteShader.shader = LoadShader(NULL, shaderPath);
if (vignetteShader.shader.id == 0) {
TraceLog(LOG_ERROR, "Failed to load shader: %s", shaderPath);
return vignetteShader;
}
vignetteShader.strength = strength;
vignetteShader.resolutionLoc = GetShaderLocation(vignetteShader.shader, "resolution");
vignetteShader.strengthLoc = GetShaderLocation(vignetteShader.shader, "strength");
Vector2 resolution = { (float)GetScreenWidth(), (float)GetScreenHeight() };
SetShaderValue(vignetteShader.shader, vignetteShader.resolutionLoc, &resolution, SHADER_UNIFORM_VEC2);
return vignetteShader;
}
void UpdateShader(VignetteShader* vignetteShader){
if (vignetteShader->shader.id == 0) return;
SetShaderValue(vignetteShader->shader, vignetteShader->strengthLoc, &vignetteShader->strength, SHADER_UNIFORM_FLOAT);
Vector2 resolution = { (float)GetScreenWidth(), (float)GetScreenHeight() };
SetShaderValue(vignetteShader->shader, vignetteShader->resolutionLoc, &resolution, SHADER_UNIFORM_VEC2);
}
void UnloadVignetteShader(VignetteShader* vignetteShader){
if (vignetteShader->shader.id == 0) return;
UnloadShader(vignetteShader->shader);
}
#endif // SHADER_H