rest
This commit is contained in:
Binary file not shown.
+5928
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
|
||||||
Reference in New Issue
Block a user