Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,56 @@
import times
import opengl
import opengl/glut
const
W = 320
H = 240
SLen = W * H div sizeof(int)
var
frame = 0
bits: array[SLen, uint]
last, start: Time
#---------------------------------------------------------------------------------------------------
proc render() {.cdecl.} =
## Render the window.
var r = bits[0] + 1
for i in countdown(bits.high, 0):
r *= 1103515245
bits[i] = r xor bits[i] shr 16
glClear(GL_COLOR_BUFFER_BIT)
glBitmap(W, H, 0, 0, 0, 0, cast[ptr GLubyte](bits.addr))
glFlush()
inc frame
if (frame and 15) == 0:
let t = getTime()
if t > last:
last = t
echo "fps: ", frame.float / (t - start).inSeconds.float
#---------------------------------------------------------------------------------------------------
proc initGfx(argc: ptr cint; argv: pointer) =
## Initialize OpenGL rendering.
glutInit(argc, argv)
glutInitDisplayMode(GLUT_RGB)
glutInitWindowSize(W, H)
glutIdleFunc(render)
discard glutCreateWindow("Noise")
glutDisplayFunc(render)
loadExtensions()
#———————————————————————————————————————————————————————————————————————————————————————————————————
var argc: cint = 0
initGfx(addr(argc), nil)
start = getTime()
last = start
glutMainLoop()

View file

@ -0,0 +1,23 @@
import random
import rapid/gfx
var
window = initRWindow()
.size(320, 240)
.title("Rosetta Code - image noise")
.open()
surface = window.openGfx()
surface.loop:
draw ctx, step:
ctx.clear(gray(0))
ctx.begin()
for y in 0..window.height:
for x in 0..window.width:
if rand(0..1) == 0:
ctx.point((x.float, y.float))
ctx.draw(prPoints)
echo 1 / (step / 60)
update step:
discard step

View file

@ -0,0 +1,35 @@
import random
import rapid/gfx
var
window = initRWindow()
.size(320, 240)
.title("Rosetta Code - image noise")
.open()
surface = window.openGfx()
let
noiseShader = surface.newRProgram(RDefaultVshSrc, """
uniform float time;
float rand(vec2 pos) {
return fract(sin(dot(pos.xy + time, vec2(12.9898,78.233))) * 43758.5453123);
}
vec4 rFragment(vec4 col, sampler2D tex, vec2 pos, vec2 uv) {
return vec4(vec3(step(0.5, rand(uv))), 1.0);
}
""")
surface.vsync = false
surface.loop:
draw ctx, step:
noiseShader.uniform("time", time())
ctx.program = noiseShader
ctx.begin()
ctx.rect(0, 0, surface.width, surface.height)
ctx.draw()
echo 1 / (step / 60)
update step:
discard step