Skip to content

Latest commit

 

History

History
222 lines (176 loc) · 8.85 KB

History.rdoc

File metadata and controls

222 lines (176 loc) · 8.85 KB

1.1.1 / 2024-08-27

  • 1 minor enhancement:

    • Add basic package manager detection to deps script. (havenwood)

  • 3 bug fixes:

    • Fixed home link in readme/gemspec.

    • Minor fix in ext/sdl/sge/sge_surface.cpp.

    • Reorder installation instructions & format as code. (havenwood)

1.1.0 / 2023-07-26

  • 3 minor enhancements:

    • Added anti-aliasing to polygon. Want to add filling at some point.

    • Requiring ruby 2.7+. Too many changes to ruby internals to try to maintain.

    • polygon now takes an array of points.

  • 4 bug fixes:

    • Fixed a bunch of compiler warnings for ruby struct changes.

    • Fixed font lookup on linux. (presidentbeef)

    • Fixed graphics_setup.sh for obsolete build flag on sdl2_image. (NickSchimek)

    • ruby 3.2: Fixed warning from ruby headers by explicitly removing alloc funcs.

1.0.1 / 2018-11-14

  • 2 bug fixes:

    • Fixed bug in graphics_setup.rb. (Shashank Date)

    • Minor tweaks to graphics_setup.sh for Shawshank’s lightning talk today.

1.0.0 / 2018-11-13

  • 4 major enhancements:

    • Everything is passing around Renderer instances now.

    • Moved all drawing primitives to Renderer.

    • Removed rsdl dependency. Plain ruby seems to work fine now.

    • Updated to work with SDL2. This will break some things, but mostly works.

  • 58 minor enhancements:

    • #bezier now takes an array of any number (> 4) of points.

    • #blit and #put now do everything in one call. Should be more performant.

    • #blit and #put now use the clear color of their class for the background.

    • #clear will now warn and skip if color isn’t known.

    • #fps now takes an optional color

    • #transform/put now explicitly rotate on their bottom-left corner. Shifting x is no longer necessary.

    • AbstractRenderer#initialize clears and presents so frame 0 is correct color.

    • Added DEBUG_COLOR and use it in #debug. Reversed in WhiteBackground.

    • Added Graphics::Drawing#draw_on(texture).

    • Added Renderer#copy_texture.

    • Added Renderer#h and #w to return the output size.

    • Added Renderer#new_texture

    • Added Renderer#target and Renderer#target=

    • Added Renderer_index to read pixels. Painfully slow in comparison.

    • Added SDL::Screen::H & SDL::Screen::W and made available to your #initialize.

    • Added Screen#title=.

    • Added Surface#blit.

    • Added Surface#clear.

    • Added Surface.color_key.

    • Added Window#title and Renderer#title.

    • Added Window#update ? Do I need this?

    • Added caching to texture in Renderer#blit. Massively speeds up boids & walker.

    • Added default (empty) Body#update.

    • Added unary negation to V.

    • Alpha blending is massively improved. Black on white is black.

    • Blit now ensures blending is on.

    • Check for done before paused so ‘esc` can quit while paused.

    • Extended Renderer#point to optionally read or write a pixel.

    • Improved default window naming to add spaces to the classname.

    • Moved Screen#flip to Renderer#present.

    • Moved Screen#set_title to Window#set_title.

    • Moving everything out of Screen class. Will remove or leave just for constants.

    • Removed KeyEvent#unicode.

    • Removed PixelFormat#colorkey and #alpha.

    • Removed SDL::WM and set_caption. Set titles via screen.title=

    • Removed Screen#update.

    • Removed Simulation#alpha, now built into pixels directly.

    • Removed Surface#color_key and Surface#set_color_key.

    • Removed Surface#flags and Surface#set_alpha.

    • Removed Surface.blit class method.

    • Removed Surface.new. You only create surfaces via Font.render_text and #sprite.

    • Removed bpp argument to AbstractSimulation#initialize.

    • Removed/changed a lot of constants, mostly around KeyEvent handling.

    • Renamed AbstractSimulation#rgb to #rgba. I think this should probably just go?

    • Renamed PixelFormat.get_rgb to get_rgba.

    • Renderer#fast_rect now just calls Renderer#draw_rect w/ true for filled.

    • SDL2 properly supports RGBA. Switched to it entirely.

    • Screen#open now stores off a renderer, window, and texture in the Surface.

    • Screen.open no longer creates or stores a surface. Saves off its own PixelFormat.

    • Search Ubuntu font directories in #find_font. (phiggins)

    • Simulation now defaults to half-width and half-height. No more required args to super.

    • Surface#save now saves off PNG.

    • Switched Renderer and Window to subclass Data, not Surface.

    • Switching to SDL2_gfx for primitive drawing and rotozoom.

    • Transforms now default to anti-aliased rotations.

    • Updated graphics_setup.sh to remove SDL1 and install SDL2 (on OSX).

    • V#magnitude is now cached.

    • graphics_setup.sh will install hoe if necessary.

  • 15 bug fixes:

    • Cleaned some off-by-one drawing bugs. I think it is more pixel perfect now?

    • Cleaned up Numeric#degrees.

    • Finished getting to 100% rdoc coverage.

    • Fixed a memory leak in PixelFormat. Might remove it entirely.

    • Fixed a memory leak in collision maps.

    • Fixed an off-by-one in blitting.

    • Fixed bugs in hline and vline not using correct defaults. (joshcheek)

    • Fixed circle and ellipse. Filled + anti-aliased wasn’t actually anti-aliased.

    • Fixed examples/boid.rb to rotate bodies again.

    • Fixed examples/canvas.rb to draw in black again.

    • Fixed fps drawing bug in rainbow_fluid.rb

    • Fixed graphics_setup.sh and Rakefile for linux.

    • Functional GoL: use Set vs. Array for faster search. (sotoseattle)

    • Minor fix to examples/bounce.rb for older ruby versions.

    • Removed Graphics::Surface::VideoMemoryLost.

1.0.0b6 / 2016-11-17

I’m still not happy with the color system. I’d love some help to make it more usable.

  • 1 major enhancement:

    • Added Graphics::Drawing: a simulation that doesn’t double buffer or clear each tick.

  • 20 minor enhancements:

    • Added DrawGrid decorator.

    • Added Graphics::Simulation#draw_collection

    • Added Graphics::Simulation#register_bodies

    • Added Graphics::Simulation#register_body

    • Added Screen#save.

    • Added ShowFPS decorator module

    • Added Simulation#done that causes soft exit to allow profiling of apps.

    • Added WhiteBackground decorator.

    • Added cyan and magenta to color dictionary.

    • Added sge_FastFilledRect to sge_primitives.

    • Body#bounce returns true if it did bounce.

    • Defined Graphics::Simulation::CLEAR_COLOR.

    • Graphics::Simulation now stores a collection of collections of bodies. Those bodies are updated and drawn automatically each tick.

    • Graphics::Simulation.clear defaults to CLEAR_COLOR.

    • Improved MVC pattern in Simulation.

    • Pushed Simulation up to AbstractSimulation.

    • Registered more default colors. Should also make arrays of names.

    • Reimplement Body#bounce to use clip & NORMAL. Much cleaner.

    • Split Simulation#draw into pre_draw and post_draw to give overrides more flexibility.

    • Split up Simulation for Drawings.

  • 4 bug fixes:

    • Fixed a bug in boid refactoring.

    • Fixed bounce math to try to place the body to where it would bounce. (sotoseattle)

    • No more srand in examples.

    • Only apply friction on #bounce if greater than 0.

1.0.0b5 / 2015-10-31

  • 10 minor enhancements:

    • Added Simulation#add_keydown_handler.

    • Added Simulation#keydown_handler, a hash of “key” -> block handlers.

    • Added logging every N ticks for headless simulations or debugging.

    • Switched all default key handlers to keydown handlers.

    • add example: visualization of pi computation

    • Improved key event handling.

    • add example: visualization of pi computation

    • Renamed rubysdl_setup to graphics_setup. rubysdl is out of the picture.

    • Added example rainbow fluid simulation. (litonico)

    • Added rainbows in greyscale, rgb-spectrum, and cubehelix. (litonico)

  • 2 bug fixes:

    • Fixed build issues with rubygems.

    • Switched brew install to build universal packages so it can work with stock ruby.

1.0.0b4 / 2015-09-14

  • 1 major enhancement:

    • MAJOR rewrite. Replaced rubysdl with my own C extension.

      • This unencumbers me from rubysdl, which was incomplete, LGPL, and hasn’t had a commit in over a year.

  • 11 minor enhancements:

    • Added Body#angle_to

    • Added Body#distance_to_squared

    • Added Simulation#iter_per_tick and changed update to run that number of

    • Added examples/canvas.rb to show drawing coordinate system.

    • Added maze example from Jamis Buck’s Mazes for Programmers.

    • All blits are antialiased and default to 0deg rotation.

    • Removed TTF.init

    • Shift drawing of nearly all things by 1px in y. Makes drawing hline at 0 visible.

    • Text now uses draw_blended_utf8 for smoother text rendering

    • Updated rubysdl_setup.sh to be more correct. Not quite complete yet.

    • Better math. powered by scotch™

  • 6 bug fixes:

    • Documented basic attribs of Body.

    • Fixed drawing at y=0. Off by one, yo.

    • Fixed fill_rect for y=0

    • Fixed north/south reporting in clip now that we’re in proper q1

    • Fixed polygon refactor

    • Fixed project url and got rdoc upload url set up correctly.

1.0.0b1 / 2015-08-04

  • 1 major enhancement

    • Beta Birthday!

1.0.0.a1 / 2015-03-31

  • 1 major enhancement

    • Alpha Birthday!