-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Progress
Methods Refactored: 169
Methods Left: 0
Taylor Refactor Progress: 100.0%
01 August 2025
Had a short break while I tackled the Shader
class but I have finally finished it off. It's been exciting and I'm keen to get back into it and knock out the last 20 methods!!!
30 June 2025
Got delayed by hunting down memory issues. On the up side I completely refactored reference counting and it's now a lot simpler and actually tested!
12 June 2025
Figured I needed to add a couple more methods into this refactor. Also did a deep dive on how to properly handle nested structs in C++ and mruby. I think I've got it sorted and even added some nice macros to make it easier to get right.
1 June 2025
I figured I should be a bit more public about the progress of this since I've been posting on my mastodon account. I'll try to keep this up to date as I go. I had a big lull in my motivation once I hit some gnarly problems with testing, but having found a resolution to that I have been driven and making really good progress. I think I've moved 15~% in the last couple of months, which included a week or two for a massive change in testing.
The Checklist
This list may be incomplete as I started it a couple of months into the refactor but should be accurate in terms of what's left in terms of migrating methods.
- Font#new
- Font#unload
- Font#draw
- Font#measure
- Font#to_image
- Camera2D#initialize
- Camera2D#draw
- Camera2D#as_in_viewport
- Camera2D#as_in_world
- Image#export
- Image#copy
- Image#resize!
- Image#crop!
- Image#rotate_clockwise!
- Image#rotate_counter_clockwise!
- Image#to_texture
- Image#premultiply_alpha
- Image#generate_mipmaps!
- Image#tint!
- Image#invert!
- Image#grayscale!
- Image#contrast!
- Image#brightness!
- Image#replace!
- Image#draw!
- Music#initialize
- Music#unload
- Music#play
- Music#playing?
- Music#stop
- Music#played
- Music#update
- Music#pause
- Music#resume
- Music#length
- Music#volume=
- Music#pitch=
- Sound#initialize
- Sound#unload
- Sound#play
- Sound#stop
- Sound#pause
- Sound#resume
- Sound#playing?
- Sound#volume=
- Sound#pitch=
- #mrb_key_pressed
- #mrb_key_down
- #mrb_key_released
- #mrb_key_up
- #mrb_set_exit_key
- #mrb_get_key_pressed
- #mrb_get_char_pressed
- #mrb_init_window
- #mrb_window_should_close
- #mrb_close_window
- #mrb_window_ready
- #mrb_window_state
- #mrb_set_window_state
- #mrb_window_fullscreen
- #mrb_window_hidden
- #mrb_window_minimised
- #mrb_window_maximised
- #mrb_window_focused
- #mrb_window_resized
- #mrb_clear_window_state
- #mrb_toggle_fullscreen
- #mrb_minimise_window
- #mrb_restore_window
- #mrb_set_window_icon
- #mrb_set_window_title
- #mrb_set_window_position
- #mrb_set_window_min_size
- #mrb_set_window_size
- #mrb_get_screen_width
- #mrb_get_screen_height
- #mrb_get_window_position
- #mrb_get_screen_data
- #mrb_android
- #mrb_browser
- #mrb_linux
- #mrb_osx
- #mrb_windows
- #mrb_released
- #mrb_gamepad_available
- #mrb_get_gamepad_name
- #mrb_gamepad_button_pressed
- #mrb_gamepad_button_down
- #mrb_gamepad_button_released
- #mrb_gamepad_button_up
- #mrb_get_gamepad_button_pressed
- #mrb_get_gamepad_axis_count
- #mrb_get_gamepad_axis_movement
- #mrb_set_gamepad_mappings
- #mrb_get_touch_position
- #mrb_clear_background
- #mrb_begin_drawing
- #mrb_end_drawing
- #mrb_begin_texture_mode
- #mrb_end_texture_mode
- #mrb_begin_shader_mode
- #mrb_end_shader_mode
- #mrb_begin_scissor_mode
- #mrb_end_scissor_mode
- #mrb_files_dropped
- #mrb_get_dropped_files
- #mrb_set_gestures_enabled
- #mrb_get_gesture_detected
- IsGestureDetected
- GetGestureHoldDuration
- GetGestureDragVector
- GetGestureDragAngle
- GetGesturePinchVector
- GetGesturePinchAngle
- #mrb_take_screenshot
- #mrb_set_config_flags
- #mrb_set_trace_log_level
- #mrb_open_url
- #mrb_set_clipboard_text
- #mrb_get_clipboard_text
- #mrb_set_target_fps
- #mrb_get_fps
- #mrb_get_frame_time
- #mrb_get_time
- #mrb_maximise_window
- #mrb_set_window_monitor
- #mrb_get_monitor_count
- #mrb_get_current_monitor
- #mrb_get_monitor_position
- #mrb_get_monitor_width
- #mrb_get_monitor_height
- #mrb_get_monitor_refresh_rate
- #mrb_get_window_scale_dpi
- #mrb_Circle_initialize
- #mrb_draw_circle
- #mrb_draw_circle_v
- #mrb_draw_circle_sector
- #mrb_draw_circle_sector_lines
- #mrb_draw_circle_gradient
- #mrb_draw_circle_lines
- #mrb_check_collision_point_rec
- #mrb_Line_initialize
- #mrb_draw_line
- #mrb_draw_line_v
- #mrb_draw_line_ex
- #mrb_draw_line_bezier
- #mrb_draw_line_bezier_quad
- #mrb_draw_line_strip
- #mrb_draw_pixel
- #mrb_draw_pixel_v
- #mrb_Rectangle_initialize
- #mrb_draw_rectangle
- #mrb_draw_rectangle_rec
- #mrb_draw_rectangle_pro
- #mrb_draw_rectangle_gradient_v
- #mrb_draw_rectangle_gradient_h
- #mrb_draw_rectangle_gradient_ex
- #mrb_draw_rectangle_lines
- #mrb_draw_rectangle_lines_ex
- #mrb_draw_rectangle_rounded
- #mrb_draw_rectangle_rounded_lines
- #mrb_load_shader_from_string
- #mrb_load_shader
- #mrb_unload_shader
- #mrb_shader_ready
- #mrb_get_shader_location
- #mrb_set_shader_values
- #mrb_draw_fps
- #mrb_load_texture
- #mrb_unload_texture
- #mrb_set_texture_filter
- #mrb_gen_texture_mipmaps
- #mrb_draw_texture
- #mrb_draw_texture_pro
- #mrb_fade