summaryrefslogtreecommitdiffstats
path: root/libdimension
Commit message (Collapse)AuthorAgeFilesLines
* Major dmnsn_kD_splay_search() optimization.Tavian Barnes2009-10-261-19/+21
| | | | | | | | At each level of recursion, we have to go down the right branch if it exists. But if we do this before we test the current node and the left branch, we can eliminate those tests in the likely case that we find a closer object in the geometrically larger right subtree. This gives about a 2X speed improvement according to `make bench'.
* Clean up some dmnsn_new_*() functions.Tavian Barnes2009-10-264-64/+37
| | | | | Rather than special-case every failed memory allocation, just make dmnsn_delete_*() more robust and call it.
* Delete empty cube.c.Tavian Barnes2009-10-261-23/+0
|
* Call dmnsn_done_progress() later in dmnsn_finish_progress().Tavian Barnes2009-10-261-3/+2
|
* Don't check if it's too late to add canvas optimizers.Tavian Barnes2009-10-264-26/+6
| | | | This fixes some errors displayed by concurrency checkers like helgrind and drd.
* Fix some concurrency mistakes.Tavian Barnes2009-10-262-12/+31
| | | | TODO: eliminate the too_late field on canvases.
* More memory handling improvements.Tavian Barnes2009-10-201-0/+2
|
* Fix some memory leaks.Tavian Barnes2009-10-194-14/+30
| | | | | dmnsn_delete_pigment() was not using the free_fn, and kD splay trees were not being deleted after raytracing finished.
* Improve garbage handling of dmnsn_delete_object().Tavian Barnes2009-10-192-1/+5
|
* Allow custom fatal error handlers.Tavian Barnes2009-10-182-2/+52
|
* Fix ray-box intersection test.Tavian Barnes2009-10-131-4/+4
|
* Remove unused variable from dmnsn_kD_splay_search_recursive().Tavian Barnes2009-10-091-1/+0
|
* Use kD splay trees in raytrace engine.Tavian Barnes2009-10-091-28/+29
|
* kD splay tree fixes, and new dmnsn_kD_splay_tree type.Tavian Barnes2009-10-092-194/+167
|
* kD splay tree fixes.Tavian Barnes2009-10-091-4/+8
|
* Typo fixes in kD_splay_tree.c.Tavian Barnes2009-10-071-8/+8
|
* Test object's bounding boxes too in dmnsn_kD_splay_search().Tavian Barnes2009-10-071-13/+30
|
* Implement search for kD splay trees.Tavian Barnes2009-10-073-72/+176
|
* Add ray - bounding-box intersection test function.Tavian Barnes2009-10-071-0/+72
|
* Call kD splay children `contains' and `container'.Tavian Barnes2009-10-072-36/+36
|
* Calculate bounding boxes for spheres and cubes.Tavian Barnes2009-10-061-0/+4
|
* Fix kD splay tree rotations.Tavian Barnes2009-10-061-21/+57
|
* Implement insert for kD splay trees.Tavian Barnes2009-10-053-0/+129
|
* Add bounding boxes to objects.Tavian Barnes2009-10-051-0/+3
|
* Implement splay operation for kD splay trees.Tavian Barnes2009-10-052-1/+59
|
* Begin kD splay tree implementation.Tavian Barnes2009-10-053-0/+142
|
* Actully guarantee array allocation in dmnsn_new_array().Tavian Barnes2009-10-051-3/+5
|
* New benchmarking suite.Tavian Barnes2009-10-041-1/+2
|
* Don't take a transformation matrix in dmnsn_new_perspective_camera().Tavian Barnes2009-07-162-6/+6
|
* Have camera callbacks take canvas coordinates as doubles.Tavian Barnes2009-07-163-11/+7
|
* Add support for default textures.Tavian Barnes2009-07-164-16/+42
|
* Render pigments.Tavian Barnes2009-07-165-14/+44
|
* New C++ wrapper for dmnsn_texture*.Tavian Barnes2009-07-164-10/+32
|
* New dmnsn_intersection* type for ray-object intersections.Tavian Barnes2009-07-163-53/+86
|
* Add destructor callbacks for polymorphic C types, and use their baseTavian Barnes2009-07-1615-56/+53
| | | | dmnsn_delete_*() function.
* Add ability to set rendering quality.Tavian Barnes2009-07-123-37/+47
|
* Begin dmnsn_texture* type.Tavian Barnes2009-07-128-8/+222
|
* Implement removing/inserting in the middle of a dmnsn_array*.Tavian Barnes2009-07-091-0/+28
|
* Code formatting.Tavian Barnes2009-07-095-23/+39
|
* Set the _XOPEN_SOURCE feature test macro correctly in dimension.h, soTavian Barnes2009-07-091-0/+5
| | | | that pthread.h defines pthread_rwlock_t for us.
* New interface for background progress bars in C++ tests.Tavian Barnes2009-07-091-1/+1
|
* Update license copyrights to 2009.Tavian Barnes2009-07-0831-31/+31
|
* Comments and style adjustments, and a couple fixes.Tavian Barnes2009-07-0816-27/+62
|
* Make optimizer registration fail if a canvas has already been writtenTavian Barnes2009-07-054-9/+25
| | | | to.
* Remove raw X Windows interface.Tavian Barnes2009-07-054-78/+2
|
* Use "__extension__ extern __inline__" for DMNSN_INLINE in GNU C.Tavian Barnes2009-07-042-2/+2
|
* New interface for optimizing canvas conversions by registeringTavian Barnes2009-07-046-39/+276
| | | | dmnsn_set_pixel() callbacks.
* Begin interface for writing canvases to X windows.Tavian Barnes2009-07-024-2/+78
|
* Put windowing interface in libdimension-tests.Tavian Barnes2009-07-021-5/+5
|
* Implement dmnsn_gl_read_canvas.Tavian Barnes2009-07-022-4/+41
|