| 123456789101112131415161718192021222324252627282930313233343536 |
- MODULE shader;
- FROM tigr IMPORT TigrPtr, tigrWindow, tigrFree, tigrClosed, tigrClear,
- tigrUpdate, tigrPrint, tfont, TK_ESCAPE, tigrKeyDown,
- tigrSetPostShader, tigrSetPostFX, tigrTime;
- FROM helper IMPORT tigrRGB;
- CONST
- fxShader = "void fxShader(out vec4 color, in vec2 uv) {vec2 tex_size = vec2(textureSize(image, 0));vec4 c = texture(image, (floor(uv * tex_size) + 0.5 * sin(parameters.x)) / tex_size);color = c;}";
- VAR
- screen : TigrPtr;
- duration, phase : SHORTREAL;
- p : SHORTREAL;
- BEGIN
- screen := tigrWindow(320, 240, "Shady", 0);
- tigrSetPostShader(screen, fxShader, HIGH(fxShader));
- duration := 1.0;
- phase := 0.0;
- WHILE (NOT (tigrClosed(screen) > 0)) AND (NOT (tigrKeyDown(screen, TK_ESCAPE) > 0)) DO
- phase := phase + tigrTime();
- WHILE phase > duration DO
- phase := phase - duration
- END;
- p := 6.28 * phase / duration;
- tigrSetPostFX(screen, p, 0.0, 0.0, 0.0);
- tigrClear(screen, tigrRGB(80H, 90H, 0A0H));
- tigrPrint(screen, tfont, 120, 110, tigrRGB(0FFH, 0FFH, 0FFH),
- "Shady business");
- tigrUpdate(screen);
- END;
- tigrFree(screen);
- END shader.
|