summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-02-07plasma: add a plasma rendererVito Caputo
2017-02-03*: use fb_fragment_zero() instead of memset()Vito Caputo
2017-02-03fb: add fb_fragment_zero() helperVito Caputo
Currently just a memset wrapper... but maybe could get noop'd if the flipper thread started supporting pre-zeroing pages in its thread, just need a zeroed state in the fb page.
2017-02-03stars: use fb_fragment_put_pixel_unchecked()Vito Caputo
drop draw_pixel() duplication
2017-02-03sparkler: drop draw.hVito Caputo
2017-02-03sparkler: use fb.h put_pixel helpersVito Caputo
discards draw_pixel(), introduces helpers.h and a convenience function for bounds checking and oob extermination. Move makergb to helpers.h, draw.h gets removed in a later commit.
2017-02-03fb: add pixel drawing helpersVito Caputo
Modules seem to be duplicating this, just pull it into fb.h since we're already dependent on the fb.h abstractions in the modules. Slippery slope!
2017-02-03rototiller: extricate draw_pixel() bounds checkingVito Caputo
If a z-buffer is added these checks will need to be done independent from and prior to drawing. Also it's silly to makergb() pixels which can't be drawn.
2017-02-03fb: add fragment bounds checking helperVito Caputo
Simple x,y coordinate check
2017-01-18Merge build system cleanupsVito Caputo
- Move source to src/ subdir - Use $(top_srcdir)/src instead of ../../
2017-01-18autotools: s#../../#@top_srcdir@/src#Vito Caputo
The relative path broke out-of-tree builds. Previously the following: $ mkdir /tmp/foo $ cd /tmp/foo $ ~/src/rototiller/configure $ make Would fail to compile unable to locate the headers in ~/rototiller/src This fixes it.
2017-01-18*: move source into src/ subdirVito Caputo
Restoring some organizational sanity since adopting autotools.
2017-01-17fb: require 2+ pages in fb_new()Vito Caputo
If NUM_FB_PAGES was redefined to 1 rototiller would hang, since 1 is insufficient for page-flipping.
2017-01-10stars: two bugfixesVito Caputo
2017-01-10stars: fixed bug in opacity calculation (starslib)Philip J Freeman
2017-01-10pull fix in draw.h from sparkler to stars ↵Philip J Freeman
(78d9c385ae3a1939e059c674ba5649df99d5615c)
2017-01-10*: update gitignore to include autoconf outputVito Caputo
As this stuff is all generated we don't want to ever check it in...
2017-01-10build: add bootstrap scriptVito Caputo
Not everyone knows about `autoreconf --install`
2017-01-10*: add .gitignoreVito Caputo
2017-01-10*: drop MakefileVito Caputo
Now the usual ./configure && make should suffice.
2017-01-10*: preliminary autotools adoptionVito Caputo
Builds were getting too time consuming, autotools is a very simple way to get incremental builds without having to dick with Makefiles myself.
2017-01-09Merge pull request #4 from ph1l/starsVito Caputo
stars: add starfield simulator from ph1l/stars
2017-01-09stars: add starfield simulator from ph1l/starsPhilip J Freeman
2017-01-07sparkler: stop scaling gravity vector every particleVito Caputo
vestigial deficiency from variable gravity experiment also reduced gravity, the results seem more aesthetically pleasing.
2017-01-07sparkler: don't age or sim on empty children eitherVito Caputo
More of 86bc322, eliminate per-particle unnecessary calls
2017-01-07sparkler: add per-bsp (last) lookup cacheVito Caputo
This is a trivial optimization which makes a substantial difference. When we're doing things like explosions, thousands of occupants get added to the bsp tree at the exact same position. Without the lookup cache we end up traversing the octree down to its maximum depthrepeatedly, because the bv containing the explosion is of course full and maximally deep. Now explosions don't need to spend a bunch of time in the octree just to keep locating the same full bv the explosion occurs in.
2017-01-07sparkler: remove unnecessary cast to floatVito Caputo
2017-01-07sparkler: don't _particles_draw() empty childrenVito Caputo
trivial per-particle savings
2017-01-07sparkler: move page clear before all particles opsVito Caputo
2017-01-07sparkler: prefer *.5 to / 2Vito Caputo
Multiplies tend to be less costly
2017-01-07sparkler: fix parens typo in draw_pixelVito Caputo
Stride needs to be considered as part of width, this is wrong, funnily none of my test systems exposed it.
2017-01-03ray: remove vestigial ray_scene.h includesVito Caputo
2017-01-02roto: add TODO comment about faster lerp_color()Vito Caputo
2017-01-02roto: skip lerp of identical colorsVito Caputo
With the current checkerboard pattern the majority of the interpolation being performed is pointless. Of course with a more complex texture this won't be as beneficial, but for now it makes a significant FPS improvement.
2016-12-31rototiller: renderer select consistent with drmsetupVito Caputo
Minor formatting changes
2016-12-31drmsetup: add mode selectionVito Caputo
Rather than using whatever the existing drm_crtc->mode is, present all modes on the chosen connector and let the user pick.
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
© All Rights Reserved