summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--shaders/test.fs72
-rw-r--r--src/main.zig15
2 files changed, 12 insertions, 75 deletions
diff --git a/shaders/test.fs b/shaders/test.fs
index 44a912e..16cf7c3 100644
--- a/shaders/test.fs
+++ b/shaders/test.fs
@@ -1,65 +1,4 @@
#version 330
-/*
-//if ((pix % 3) == 2)
-//black pixel
-//else
-//get color of floor(pix / 3)
-//end
-
-//uniform vec2 resolution;
-//uniform sampler2D backbuffer;
-//
-//void main( void ) {
-// vec2 position = ( gl_FragCoord.xy / resolution.xy );
-// vec4 color = texture2D(backbuffer, position);
-// // ... do something with it ...
-//}
-
-
-// Input vertex attributes (from vertex shader)
-in vec2 fragTexCoord;
-in vec4 fragColor;
-
-// Input uniform values
-uniform sampler2D texture0;
-uniform vec4 colDiffuse;
-
-// Output fragment color
-out vec4 finalColor;
-
-// NOTE: Add here your custom variables
-
-// NOTE: Render size values should be passed from code
-uniform float renderWidth = 800;
-uniform float renderHeight = 450;
-
-float radius = 250.0;
-float angle = 0.8;
-
-uniform vec2 center = vec2(200.0, 200.0);
-
-void main()
-{
- //vec2 newcoord = vec2(fragTexCoord.x + 10, fragTexCoord.y + 10);
- //vec2 position = ( mod(gl_FragCoord.x,3), mod(gl_FragCoord.y, 3) );
- //if ( position.x == 2 ) || ( position.y == 2 )
- //{
- // gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );
- //}
- //else
- //{
- // vec2 position_new = (floor(gl_FragCoord.xy));
- // gl_FragColor = texture2D(texture0, position_new);
- //}
- //gl_FragColor = vec4(0.5, 0.5, 0.5, 1.0);
-
- vec2 p = fragTexCoord;
- p.x = fragTexCoord.x + 100000;
-
-
- gl_FragColor = texture(texture0, p);
-}
-*/
// Input vertex attributes (from vertex shader)
@@ -74,21 +13,24 @@ uniform vec4 colDiffuse;
out vec4 finalColor;
// NOTE: Add here your custom variables
-vec2 textureResolution = vec2(64.0*3.0, 32.0*3.0);
-vec2 onePixel = vec2(1.0, 1.0) / textureResolution;
+uniform float renderWidth;
+uniform float renderHeight;
+vec2 textureResolution = vec2(renderWidth, renderHeight);
+uniform float grid_size;
+//vec2 onePixel = vec2(1.0, 1.0) / textureResolution;
vec2 pixelCoor = fragTexCoord * textureResolution;
void main()
{
vec4 texelColor = vec4(0.0, 0.0, 0.0, 0.0);
// Texel color fetching from texture sampler
- if ((mod(floor(pixelCoor.x), 3) == 2.0) || (mod(floor(pixelCoor.y), 3) == 2.0))
+ if ((mod(floor(pixelCoor.x), grid_size + 1.0) == grid_size) || (mod(floor(pixelCoor.y), grid_size + 1.0) == grid_size))
{
texelColor = vec4(0.0, 0.0, 0.0, 1.0);
}
else {
pixelCoor.y = -pixelCoor.y;
- pixelCoor = pixelCoor / 3.0;
+ pixelCoor = pixelCoor / (grid_size + 1.0);
texelColor = texture(texture0, (pixelCoor /textureResolution));
}
//if ((pix % 3) == 2)
diff --git a/src/main.zig b/src/main.zig
index 608b67f..63e98d6 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -16,6 +16,7 @@ var shader: ray.Shader = undefined;
var swirl_center_loc: c_int = undefined;
var renderPoint_renderWidth: c_int = undefined;
var renderPoint_renderHeight: c_int = undefined;
+var shader_gridsize: f32 = 2.0;
var swirl_center = [_]u32{ screenWidth / 2, screenHeight / 2 };
@@ -178,27 +179,20 @@ pub fn main() !void {
}
}
-fn pow(base: u32, power: u32) u32 {
- var iter: u32 = 0;
- var result: u32 = base;
- while (iter < power) : (iter += 1) {
- result = result * base;
- }
- return result;
-}
-
fn get_coords(x: u32, y: u32) u32 {
return y * 64 + x;
}
fn setup_graphics() void {
ray.InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window");
- chip8_screen = ray.LoadRenderTexture(64 * 3, 32 * 3);
+ chip8_screen = ray.LoadRenderTexture(64 * @floatToInt(c_int, shader_gridsize + 1), 32 * @floatToInt(c_int, shader_gridsize + 1));
//shader = ray.LoadShader(0, "shaders/glsl330/swirl.fs");
shader = ray.LoadShader(0, "shaders/test.fs");
//swirl_center_loc = ray.GetShaderLocation(shader, "center");
renderPoint_renderHeight = ray.GetShaderLocation(shader, "renderHeight");
renderPoint_renderWidth = ray.GetShaderLocation(shader, "renderWidth");
+ var shader_gridsizeLocation = ray.GetShaderLocation(shader, "grid_size");
+
var renderVar_renderWidth: f32 = @intToFloat(f32, chip8_screen.texture.width);
var renderVar_renderHeight: f32 = @intToFloat(f32, chip8_screen.texture.height);
//ray.SetShaderValue(shader, swirl_center_loc, swirlCenter, ray.SHADER_UNIFORM_VEC2);
@@ -206,6 +200,7 @@ fn setup_graphics() void {
//ray.SetShaderValue(shader, renderPoint_renderWidth, &chip8_screen.texture.width, ray.SHADER_UNIFORM_FLOAT);
ray.SetShaderValue(shader, renderPoint_renderWidth, &renderVar_renderWidth, ray.SHADER_UNIFORM_FLOAT);
ray.SetShaderValue(shader, renderPoint_renderHeight, &renderVar_renderHeight, ray.SHADER_UNIFORM_FLOAT);
+ ray.SetShaderValue(shader, shader_gridsizeLocation, &shader_gridsize, ray.SHADER_UNIFORM_FLOAT);
//ray.SetShaderValue(shader, renderPoint_renderHeight, chip8_screen.texture.height, ray.SHADER_UNIFORM_FLOAT);
ray.SetTargetFPS(60);
}