summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-12-30roto: bilinear interpolation of texture colorsVito Caputo
This implements anti-aliasing, no more jaggies! Still 100% software rendering, fixed point arithmetic. Maybe add zooming with mipmaps next?
2016-12-30roto: move initialization to shared functionVito Caputo
reduce some of the silly duplication across 32/64 versions.
2016-12-30roto: some fixed point macro cleanupsVito Caputo
2016-12-21ray: eliminate benign compiler warningsVito Caputo
2016-12-13drmsetup: include errno in more drm errorsVito Caputo
Also improves handling of odd situation of no connectors w/encoders
2016-12-13Merge pull request #3 from vcaputo/docsVito Caputo
text: update README and TODO
2016-12-13text: update README and TODOVito Caputo
2016-12-13Merge pull request #2 from vcaputo/moarVito Caputo
More candy
2016-12-13*: drop original rototiller, update MakefileVito Caputo
This should produce a rototiller executable with all the renderers available, and the ability to choose the DRM card and connector.
2016-12-13rototiller: new main w/modular renderersVito Caputo
This will be replacing the old rototiller listings, and uses all the new stuff (drm_setup, fb, fps, renderers...)
2016-12-13ray: introduce a rudimentary ray tracerVito Caputo
My first ray tracer, it only has spheres, planes, and point light sources. No texture mapping, no soft shadows, no global illumination. This is all very basic right now, the camera movement is simple and boring, but sufficient for further development and optimization. I made some effort to support multiple CPUs, it should detect the number of CPUs in the system and use enough pthreads to keep them busy. Jacco Bikker's tutorial on flipcode was the original impetus to do this, and definitely served as a guide early on.
2016-12-13sparkler: introduce a particle systemVito Caputo
A while ago I made this particle system on SDL, and had the beginnings of an octree implemented within it, but never finished actually using the octree to accelerate the proximity searches. This now has the octree completed and of course more particle interactions now that neighbors could be found more quickly. The simulation somewhat resembles a fireworks display. Every particle is drawn as a single pixel. The visual effect is dominated by spontaneously spawned rockets which explode into thousands of particles accompanied by bursts that thrust particles away from the explosion radially in an expanding sphere resembling a shock wave. When the shock wave happens to strike another rocket, it explodes, resulting in another shock wave. This can produce spectacular chain reactions, so it's worth running for some time and seeing what transpires.
2016-12-13roto: add modular forms of original rendererVito Caputo
2016-12-13drmsetup: introduce drm_setup()Vito Caputo
quick and dirty stdio-based drm card and connector selection
2016-12-13util: introduce ask_(string,num) helpersVito Caputo
quick and dirty stdio dialog helpers
2016-12-13rototiller: introduce rototiller_renderer_tVito Caputo
Moving towards a modular renderer model so we can draw different things.
2016-12-12README: fix spelling of AirlieVito Caputo
2016-12-12fb: inline fb_drm_flip_waitVito Caputo
2016-11-23util: put convenience helpers into util.[ch]Vito Caputo
Also introduces get_ncpus(), in preparation for threaded rendering.
2016-11-23fps: add rudimentary FPS counterVito Caputo
This is just the implementation, nothing leveraged yet.
2016-11-23fb: add rudimentary drm fb and page apiVito Caputo
This implementation uses a page flipping thread and very simple pthreads mutex/condition variable synchronization. There is room for improvement, but this combined with 3 fb pages enables the rendering loop to fully overlap with page flipping with the next ready page queued asynchronously.
2016-06-17rototiller: fix typo in READMEVito Caputo
2016-06-17rototiller: initial commitVito Caputo
This is a retro-style demo hack, demonstrating libdrm dummy buffer use for achieving "oldskool" demo-style graphics programming on modern linux. It's a quick and nasty hack, some effort was put into optimizing the renderer, but the libdrm setup code is prototype quality at best, it's a spaghetti of crap cobbled together while scrutinizing the libdrm headers until something showed on-screen. The amazing thing is, it actually works, and quite well at that, on my machine anyways.
© All Rights Reserved