mirror of
https://github.com/cyberarm/cyberarm_engine.git
synced 2025-12-15 20:52:35 +00:00
Style fixes, wip layout speed up work
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
PATH
|
PATH
|
||||||
remote: .
|
remote: .
|
||||||
specs:
|
specs:
|
||||||
cyberarm_engine (0.24.4)
|
cyberarm_engine (0.24.5)
|
||||||
gosu (~> 1.1)
|
gosu (~> 1.1)
|
||||||
|
|
||||||
GEM
|
GEM
|
||||||
@@ -13,6 +13,7 @@ GEM
|
|||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
x64-mingw-ucrt
|
x64-mingw-ucrt
|
||||||
|
x86_64-linux
|
||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
bundler (~> 2.2)
|
bundler (~> 2.2)
|
||||||
@@ -21,4 +22,4 @@ DEPENDENCIES
|
|||||||
rake (~> 13.0)
|
rake (~> 13.0)
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.5.3
|
2.6.8
|
||||||
|
|||||||
@@ -7,13 +7,13 @@ module CyberarmEngine
|
|||||||
attr_reader :children, :gui_state, :scroll_position, :scroll_target_position
|
attr_reader :children, :gui_state, :scroll_position, :scroll_target_position
|
||||||
|
|
||||||
def self.current_container
|
def self.current_container
|
||||||
@@current_container
|
@current_container
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.current_container=(container)
|
def self.current_container=(container)
|
||||||
raise ArgumentError, "Expected container to an an instance of CyberarmEngine::Element::Container, got #{container.class}" unless container.is_a?(CyberarmEngine::Element::Container)
|
raise ArgumentError, "Expected container to an an instance of CyberarmEngine::Element::Container, got #{container.class}" unless container.is_a?(CyberarmEngine::Element::Container)
|
||||||
|
|
||||||
@@current_container = container
|
@current_container = container
|
||||||
end
|
end
|
||||||
|
|
||||||
def initialize(options = {}, block = nil)
|
def initialize(options = {}, block = nil)
|
||||||
@@ -26,6 +26,11 @@ module CyberarmEngine
|
|||||||
@scroll_chunk = 120
|
@scroll_chunk = 120
|
||||||
@scroll_speed = 40
|
@scroll_speed = 40
|
||||||
|
|
||||||
|
if @gui_state
|
||||||
|
@width = window.width
|
||||||
|
@height = window.height
|
||||||
|
end
|
||||||
|
|
||||||
@text_color = options[:color]
|
@text_color = options[:color]
|
||||||
|
|
||||||
@children = []
|
@children = []
|
||||||
@@ -34,7 +39,7 @@ module CyberarmEngine
|
|||||||
end
|
end
|
||||||
|
|
||||||
def build
|
def build
|
||||||
@block.call(self) if @block
|
@block&.call(self)
|
||||||
|
|
||||||
root.gui_state.request_recalculate_for(self)
|
root.gui_state.request_recalculate_for(self)
|
||||||
end
|
end
|
||||||
@@ -53,7 +58,7 @@ module CyberarmEngine
|
|||||||
old_container = CyberarmEngine::Element::Container.current_container
|
old_container = CyberarmEngine::Element::Container.current_container
|
||||||
|
|
||||||
CyberarmEngine::Element::Container.current_container = self
|
CyberarmEngine::Element::Container.current_container = self
|
||||||
block.call(self) if block
|
block&.call(self)
|
||||||
|
|
||||||
CyberarmEngine::Element::Container.current_container = old_container
|
CyberarmEngine::Element::Container.current_container = old_container
|
||||||
|
|
||||||
@@ -66,7 +71,7 @@ module CyberarmEngine
|
|||||||
old_container = CyberarmEngine::Element::Container.current_container
|
old_container = CyberarmEngine::Element::Container.current_container
|
||||||
|
|
||||||
CyberarmEngine::Element::Container.current_container = self
|
CyberarmEngine::Element::Container.current_container = self
|
||||||
block.call(self) if block
|
block&.call(self)
|
||||||
|
|
||||||
CyberarmEngine::Element::Container.current_container = old_container
|
CyberarmEngine::Element::Container.current_container = old_container
|
||||||
|
|
||||||
@@ -89,9 +94,7 @@ module CyberarmEngine
|
|||||||
def debug_draw
|
def debug_draw
|
||||||
super
|
super
|
||||||
|
|
||||||
@children.each do |child|
|
@children.each(&:debug_draw)
|
||||||
child.debug_draw
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
@@ -111,7 +114,7 @@ module CyberarmEngine
|
|||||||
|
|
||||||
case child
|
case child
|
||||||
when Container
|
when Container
|
||||||
if element = child.hit_element?(child_x, child_y)
|
if (element = child.hit_element?(child_x, child_y))
|
||||||
return element
|
return element
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@@ -207,7 +210,7 @@ module CyberarmEngine
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# t = Gosu.milliseconds
|
t = Gosu.milliseconds
|
||||||
# Move children to parent after positioning
|
# Move children to parent after positioning
|
||||||
@children.each do |child|
|
@children.each do |child|
|
||||||
child.x += (@x + @style.border_thickness_left) - style.margin_left
|
child.x += (@x + @style.border_thickness_left) - style.margin_left
|
||||||
@@ -221,7 +224,7 @@ module CyberarmEngine
|
|||||||
|
|
||||||
update_child_element_visibity(child)
|
update_child_element_visibity(child)
|
||||||
end
|
end
|
||||||
# puts "TOOK: #{Gosu.milliseconds - t}ms to recalculate #{self.class}:0x#{self.object_id.to_s(16)}'s #{@children.count} children"
|
puts "TOOK: #{Gosu.milliseconds - t}ms to recalculate #{self.class}:0x#{object_id.to_s(16)}'s #{@children.count} children"
|
||||||
|
|
||||||
update_background
|
update_background
|
||||||
|
|
||||||
@@ -299,15 +302,15 @@ module CyberarmEngine
|
|||||||
return unless @style.scroll
|
return unless @style.scroll
|
||||||
|
|
||||||
# Allow overscrolling UP, only if one can scroll DOWN
|
# Allow overscrolling UP, only if one can scroll DOWN
|
||||||
if height < scroll_height
|
return unless height < scroll_height
|
||||||
if @scroll_target_position.y > 0
|
|
||||||
@scroll_target_position.y = @scroll_chunk
|
|
||||||
else
|
|
||||||
@scroll_target_position.y += @scroll_chunk
|
|
||||||
end
|
|
||||||
|
|
||||||
return :handled
|
if @scroll_target_position.y.positive?
|
||||||
|
@scroll_target_position.y = @scroll_chunk
|
||||||
|
else
|
||||||
|
@scroll_target_position.y += @scroll_chunk
|
||||||
end
|
end
|
||||||
|
|
||||||
|
:handled
|
||||||
end
|
end
|
||||||
|
|
||||||
def mouse_wheel_down(sender, x, y)
|
def mouse_wheel_down(sender, x, y)
|
||||||
@@ -315,13 +318,13 @@ module CyberarmEngine
|
|||||||
|
|
||||||
return unless height < scroll_height
|
return unless height < scroll_height
|
||||||
|
|
||||||
if @scroll_target_position.y > 0
|
if @scroll_target_position.y.positive?
|
||||||
@scroll_target_position.y = -@scroll_chunk
|
@scroll_target_position.y = -@scroll_chunk
|
||||||
else
|
else
|
||||||
@scroll_target_position.y -= @scroll_chunk
|
@scroll_target_position.y -= @scroll_chunk
|
||||||
end
|
end
|
||||||
|
|
||||||
return :handled
|
:handled
|
||||||
end
|
end
|
||||||
|
|
||||||
def scroll_jump_to_top(sender, x, y)
|
def scroll_jump_to_top(sender, x, y)
|
||||||
@@ -330,7 +333,7 @@ module CyberarmEngine
|
|||||||
@scroll_position.y = 0
|
@scroll_position.y = 0
|
||||||
@scroll_target_position.y = 0
|
@scroll_target_position.y = 0
|
||||||
|
|
||||||
return :handled
|
:handled
|
||||||
end
|
end
|
||||||
|
|
||||||
def scroll_jump_to_end(sender, x, y)
|
def scroll_jump_to_end(sender, x, y)
|
||||||
@@ -339,7 +342,7 @@ module CyberarmEngine
|
|||||||
@scroll_position.y = -max_scroll_height
|
@scroll_position.y = -max_scroll_height
|
||||||
@scroll_target_position.y = -max_scroll_height
|
@scroll_target_position.y = -max_scroll_height
|
||||||
|
|
||||||
return :handled
|
:handled
|
||||||
end
|
end
|
||||||
|
|
||||||
def scroll_page_up(sender, x, y)
|
def scroll_page_up(sender, x, y)
|
||||||
@@ -349,7 +352,7 @@ module CyberarmEngine
|
|||||||
@scroll_position.y = 0 if @scroll_position.y > 0
|
@scroll_position.y = 0 if @scroll_position.y > 0
|
||||||
@scroll_target_position.y = @scroll_position.y
|
@scroll_target_position.y = @scroll_position.y
|
||||||
|
|
||||||
return :handled
|
:handled
|
||||||
end
|
end
|
||||||
|
|
||||||
def scroll_page_down(sender, x, y)
|
def scroll_page_down(sender, x, y)
|
||||||
@@ -359,7 +362,7 @@ module CyberarmEngine
|
|||||||
@scroll_position.y = -max_scroll_height if @scroll_position.y < -max_scroll_height
|
@scroll_position.y = -max_scroll_height if @scroll_position.y < -max_scroll_height
|
||||||
@scroll_target_position.y = @scroll_position.y
|
@scroll_target_position.y = @scroll_position.y
|
||||||
|
|
||||||
return :handled
|
:handled
|
||||||
end
|
end
|
||||||
|
|
||||||
def scroll_top
|
def scroll_top
|
||||||
|
|||||||
@@ -57,7 +57,8 @@ module CyberarmEngine
|
|||||||
Stats.frame.start_timing(:gui_element_recalculate_requests)
|
Stats.frame.start_timing(:gui_element_recalculate_requests)
|
||||||
|
|
||||||
# puts "PENDING REQUESTS: #{@pending_element_recalculate_requests.size}" if @pending_element_recalculate_requests.size.positive?
|
# puts "PENDING REQUESTS: #{@pending_element_recalculate_requests.size}" if @pending_element_recalculate_requests.size.positive?
|
||||||
@pending_element_recalculate_requests.each(&:recalculate)
|
@pending_recalculate_request = true if @pending_element_recalculate_requests.size.positive?
|
||||||
|
# @pending_element_recalculate_requests.each(&:recalculate)
|
||||||
@pending_element_recalculate_requests.clear
|
@pending_element_recalculate_requests.clear
|
||||||
|
|
||||||
Stats.frame.end_timing(:gui_element_recalculate_requests)
|
Stats.frame.end_timing(:gui_element_recalculate_requests)
|
||||||
|
|||||||
Reference in New Issue
Block a user