diff options
| author | jussi | 2024-07-06 01:03:02 +0300 |
|---|---|---|
| committer | jussi | 2024-07-06 01:03:02 +0300 |
| commit | 528f3f3d822c8e9d3e72228cf5d7fc3d4daae483 (patch) | |
| tree | 9a122a3a3ed92b33e372fb53dc8e9717ecb7bd01 | |
| parent | 61c932f2605aac5a8fef4264087e9ea8f86c6760 (diff) | |
| download | reilua-enhanced-528f3f3d822c8e9d3e72228cf5d7fc3d4daae483.tar.gz reilua-enhanced-528f3f3d822c8e9d3e72228cf5d7fc3d4daae483.tar.bz2 reilua-enhanced-528f3f3d822c8e9d3e72228cf5d7fc3d4daae483.zip | |
Raymath *Equals functions return bool instead of int.
| -rw-r--r-- | API.md | 8 | ||||
| -rw-r--r-- | ReiLua_API.lua | 8 | ||||
| -rw-r--r-- | changelog | 2 | ||||
| -rw-r--r-- | devnotes | 2 | ||||
| -rw-r--r-- | examples/raygui_extensions/main.lua | 55 | ||||
| -rw-r--r-- | examples/raygui_extensions/property_list.lua | 33 | ||||
| -rw-r--r-- | examples/raygui_extensions/tree_item.lua | 4 | ||||
| -rw-r--r-- | examples/raygui_extensions/tree_view.lua | 24 | ||||
| -rw-r--r-- | examples/resources/lib/color.lua | 17 | ||||
| -rw-r--r-- | examples/resources/lib/quaternion.lua | 2 | ||||
| -rw-r--r-- | examples/resources/lib/raygui.lua | 103 | ||||
| -rw-r--r-- | examples/resources/lib/vector2.lua | 2 | ||||
| -rw-r--r-- | examples/resources/lib/vector3.lua | 2 | ||||
| -rw-r--r-- | src/rmath.c | 16 | ||||
| -rw-r--r-- | src/textures.c | 2 |
15 files changed, 154 insertions, 126 deletions
@@ -8395,7 +8395,7 @@ Wrap input value from min to max Check whether two given floats are almost equal -- Success return int +- Success return bool --- @@ -8619,7 +8619,7 @@ Clamp the magnitude of the vector between two min and max values Check whether two given vectors are almost equal -- Success return int +- Success return bool --- @@ -8907,7 +8907,7 @@ Clamp the magnitude of the vector between two values Check whether two given vectors are almost equal -- Success return int +- Success return bool --- @@ -9275,7 +9275,7 @@ Transform a quaternion given a transformation matrix Check whether two given quaternions are almost equal -- Success return int +- Success return bool --- diff --git a/ReiLua_API.lua b/ReiLua_API.lua index dd7980d..135176e 100644 --- a/ReiLua_API.lua +++ b/ReiLua_API.lua @@ -5470,7 +5470,7 @@ function RL.Remap( value, inputStart, inputEnd, outputStart, outputEnd ) end function RL.Wrap( value, min, max ) end ---Check whether two given floats are almost equal ----- Success return int +---- Success return bool ---@param x number ---@param y number ---@return any result @@ -5660,7 +5660,7 @@ function RL.Vector2Clamp( v, min, max ) end function RL.Vector2ClampValue( v, min, max ) end ---Check whether two given vectors are almost equal ----- Success return int +---- Success return bool ---@param v1 table ---@param v2 table ---@return any result @@ -5909,7 +5909,7 @@ function RL.Vector3Clamp( v, min, max ) end function RL.Vector3ClampValue( v, min, max ) end ---Check whether two given vectors are almost equal ----- Success return int +---- Success return bool ---@param v1 table ---@param v2 table ---@return any result @@ -6224,7 +6224,7 @@ function RL.QuaternionToEuler( q ) end function RL.QuaternionTransform( q, mat ) end ---Check whether two given quaternions are almost equal ----- Success return int +---- Success return bool ---@param q1 table ---@param q2 table ---@return any result @@ -61,6 +61,8 @@ DETAILED CHANGES: - FIXED: GuiGetIcons was returning just first int. Now returns a Buffer. - ADDED: GuiSetIcons. - ADDED: GetMouseOffset and GetMouseScale. + - CHANGE: Raymath *Equals functions return bool instead of int. + - FIXED: ColorToInt cast to unsigned int. ------------------------------------------------------------------------ Release: ReiLua version 0.7.0 Using Raylib 5.0 and Forked Raygui 4.0 @@ -2,6 +2,8 @@ Current { } Backlog { + * Raygui + * ICON_ defines. * Raygui lib * Check if could remove flickering from changing draw order by making queue for order changing and only change them after everything is drawn. diff --git a/examples/raygui_extensions/main.lua b/examples/raygui_extensions/main.lua index 3e9d2f1..8c549f3 100644 --- a/examples/raygui_extensions/main.lua +++ b/examples/raygui_extensions/main.lua @@ -2,10 +2,9 @@ package.path = package.path..";"..RL.GetBasePath().."?.lua" package.path = package.path..";"..RL.GetBasePath().."../resources/lib/?.lua" Util = require( "utillib" ) -Rect = require( "rectangle" ) -Vec2 = require( "vector2" ) +Vector2 = require( "vector2" ) Color = require( "color" ) -Rect = require( "rectangle" ) +Rectangle = require( "rectangle" ) Raygui = require( "raygui" ) require( "sprite_button" ):register( Raygui ) @@ -16,12 +15,12 @@ require( "tree_item" ):register( Raygui ) Gui = Raygui:new() local buttonTexture = nil -local winSize = Vec2:new( 1024, 720 ) +local winSize = Vector2:new( 1024, 720 ) local cat = { texture = nil, - source = Rect:new( 0, 0, 0, 0 ), - dest = Rect:new( 0, 0, 0, 0 ), - origin = Vec2:new( 0, 0 ), + source = Rectangle:new( 0, 0, 0, 0 ), + dest = Rectangle:new( 0, 0, 0, 0 ), + origin = Vector2:new( 0, 0 ), rotation = 0.0, tint = Color:newT( RL.WHITE ), visible = true, @@ -52,8 +51,8 @@ end local function addSpriteButtons() buttonTexture = RL.LoadTexture( RL.GetBasePath().."../resources/images/button.png" ) - local buttonSize = Vec2:new( 216, 32 ) - local bounds = Rect:new( winSize.x / 2 - buttonSize.x / 2, 200, 216, 32 ) + local buttonSize = Vector2:new( 216, 32 ) + local bounds = Rectangle:new( winSize.x / 2 - buttonSize.x / 2, 200, 216, 32 ) local gap = buttonSize.y + 2 addButton( bounds, "Start New Game", { pressed = function() print( "New Game!" ) end } ) bounds.y = bounds.y + gap @@ -72,7 +71,7 @@ end local function addPropertyList() PropertyList = Gui:PropertyList( - Rect:new( 20, 20, 256, 328 ), + Rectangle:new( 20, 20, 256, 328 ), "Property List", { -- Callbacks. grab = function( self ) Gui:setToTop( self ) end, @@ -88,7 +87,7 @@ local function addPropertyList() RL.GuiSetStyle( RL.SPINNER, RL.TEXT_ALIGNMENT, RL.TEXT_ALIGN_LEFT ) PropertyList:addControl( PropertyList.gui:Line( - Rect:new( 0, 0, 0, 0 ), + Rectangle:new( 0, 0, 0, 0 ), "Cat Texture" ) ) @@ -98,11 +97,11 @@ local function addPropertyList() -- Position. PropertyList:addControl( PropertyList.gui:Label( - Rect:new( 0, 0, 0, 0 ), + Rectangle:new( 0, 0, 0, 0 ), "Position:" ), transformGroup ) PropertyList:addControl( PropertyList.gui:TextBox( - Rect:new( 0, 0, 64, 22 ), + Rectangle:new( 0, 0, 64, 22 ), cat.dest.x, 32, false, @@ -117,7 +116,7 @@ local function addPropertyList() "Position X" ), transformGroup, true ) PropertyList:addControl( PropertyList.gui:TextBox( - Rect:new( 74, 0, 64, 22 ), + Rectangle:new( 74, 0, 64, 22 ), cat.dest.y, 32, false, @@ -133,11 +132,11 @@ local function addPropertyList() ), transformGroup ) -- Origin. PropertyList:addControl( PropertyList.gui:Label( - Rect:new( 0, 0, 0, 0 ), + Rectangle:new( 0, 0, 0, 0 ), "Origin:" ), transformGroup ) PropertyList:addControl( PropertyList.gui:TextBox( - Rect:new( 0, 0, 64, 22 ), + Rectangle:new( 0, 0, 64, 22 ), cat.dest.x, 32, false, @@ -152,7 +151,7 @@ local function addPropertyList() "Origin X" ), transformGroup, true ) PropertyList:addControl( PropertyList.gui:TextBox( - Rect:new( 74, 0, 64, 22 ), + Rectangle:new( 74, 0, 64, 22 ), cat.dest.y, 32, false, @@ -168,7 +167,7 @@ local function addPropertyList() ), transformGroup ) -- Rotation. PropertyList:addControl( PropertyList.gui:Slider( - Rect:new( 60, 0, PropertyList.defaultControlSize.x - 150, 22 ), + Rectangle:new( 60, 0, PropertyList.defaultControlSize.x - 150, 22 ), "Rotation", "0", 0, @@ -186,7 +185,7 @@ local function addPropertyList() ), transformGroup ) -- Flipped. PropertyList:addControl( PropertyList.gui:CheckBox( - Rect:new( 0, 0, 20, 20 ), + Rectangle:new( 0, 0, 20, 20 ), "Flipped", cat.flipped, { -- Callbacks. @@ -201,7 +200,7 @@ local function addPropertyList() local visibilityGroup = PropertyList:addGroup( "Visibility", false ) PropertyList:addControl( PropertyList.gui:CheckBox( - Rect:new( 0, 0, 20, 20 ), + Rectangle:new( 0, 0, 20, 20 ), "Visible", cat.visible, { -- Callbacks. @@ -217,7 +216,7 @@ local function addPropertyList() local tintGroup = PropertyList:addGroup( "Tint", false, visibilityGroup ) PropertyList:addControl( PropertyList.gui:ColorPicker( - Rect:new( 0, 0, 128, 128 ), + Rectangle:new( 0, 0, 128, 128 ), "Color Picker", Color:new( 255, 255, 255, 255 ), { -- Callbacks. @@ -226,12 +225,12 @@ local function addPropertyList() ), tintGroup ) PropertyList:addControl( PropertyList.gui:Line( - Rect:new( 0, 0, 0, 0 ), + Rectangle:new( 0, 0, 0, 0 ), "Testing" ) ) PropertyList:addControl( PropertyList.gui:DropdownBox( - Rect:new( 0, 0, 0, 0 ), + Rectangle:new( 0, 0, 0, 0 ), "Dog\nGiraffe\nLion\nHorse", 0, false, @@ -244,7 +243,7 @@ local function addPropertyList() for i = 1, 5 do PropertyList:addControl( PropertyList.gui:CheckBox( - Rect:new( 128, 0, 20, 20 ), + Rectangle:new( 128, 0, 20, 20 ), i.."_Visible", false, { -- Callbacks. @@ -268,7 +267,7 @@ end local function addTreeView() TreeView = Gui:TreeView( - Rect:new( 600, 20, 256, 328 ), + Rectangle:new( 600, 20, 256, 328 ), "Tree View", { -- Callbacks. select = function( controls ) selected( controls ) end, @@ -298,8 +297,8 @@ end function RL.init() local monitor = 0 - local mPos = Vec2:newT( RL.GetMonitorPosition( monitor ) ) - local mSize = Vec2:newT( RL.GetMonitorSize( monitor ) ) + local mPos = Vector2:newT( RL.GetMonitorPosition( monitor ) ) + local mSize = Vector2:newT( RL.GetMonitorSize( monitor ) ) RL.SetWindowState( RL.FLAG_WINDOW_RESIZABLE ) RL.SetWindowState( RL.FLAG_VSYNC_HINT ) @@ -312,7 +311,7 @@ function RL.init() -- RL.GuiSetStyle( RL.SPINNER, RL.TEXT_PADDING, 2 ) cat.texture = RL.LoadTexture( RL.GetBasePath().."../resources/images/cat.png" ) - local texSize = Vec2:newT( RL.GetTextureSize( cat.texture ) ) + local texSize = Vector2:newT( RL.GetTextureSize( cat.texture ) ) cat.source:set( 0, 0, texSize.x, texSize.y ) cat.dest = cat.source:clone() diff --git a/examples/raygui_extensions/property_list.lua b/examples/raygui_extensions/property_list.lua index 266852e..ffff54d 100644 --- a/examples/raygui_extensions/property_list.lua +++ b/examples/raygui_extensions/property_list.lua @@ -10,8 +10,8 @@ function PropertyList:new( bounds, text, callbacks, styles, tooltip ) object.bounds = bounds:clone() object.text = text - object.scroll = Vec2:new( 0, 0 ) - object.view = Rect:new( 0, 0, 0, 0 ) + object.scroll = Vector2:new( 0, 0 ) + object.view = Rectangle:new( 0, 0, 0, 0 ) object.callbacks = callbacks -- scroll, grab, drag. object.styles = styles object.tooltip = tooltip @@ -28,9 +28,8 @@ function PropertyList:new( bounds, text, callbacks, styles, tooltip ) object.disabled = false object.draggable = true object.defaultControlHeight = 22 - object.mouseScale = 1 -- Set this if drawing in different size to render texture for example. - object:setSize( Vec2:new( object.bounds.width, object.bounds.height ) ) + object:setSize( Vector2:new( object.bounds.width, object.bounds.height ) ) object._forceCheckScroll = false object._posY = 0 -- In control list update. @@ -41,7 +40,7 @@ function PropertyList:new( bounds, text, callbacks, styles, tooltip ) end function PropertyList:getDefaultBounds() - return Rect:new( self.padding, self.padding, self.defaultControlSize.x, self.defaultControlSize.y ) + return Rectangle:new( self.padding, self.padding, self.defaultControlSize.x, self.defaultControlSize.y ) end local function getControlBounds( control ) @@ -65,7 +64,7 @@ function PropertyList:updateControl( control ) end if control.visible then - control:setPosition( Vec2:new( control.bounds.x, self._posY ) ) + control:setPosition( Vector2:new( control.bounds.x, self._posY ) ) local bounds = getControlBounds( control ) if not control._noYAdvance then @@ -206,18 +205,26 @@ function PropertyList:draw() { math.floor( self.view.x ), math.floor( self.view.y ), self.view.width, self.view.height }, { 0, 0 }, 0.0, - RL.WHITE + RL.WHITE ) end function PropertyList:updateMouseOffset() - self.gui.mouseOffset = Vec2:new( -self.view.x - self.scroll.x, -self.view.y - self.scroll.y ):scale( self.mouseScale ) + if self._gui then + self.gui.mouseScale = self._gui.mouseScale + local mouseScale = Vector2:temp( 1, 1 ) / self.gui.mouseScale + + self.gui.mouseOffset = self._gui.mouseOffset + ( -Vector2:temp( self.view.x, self.view.y ) - self.scroll ) * mouseScale + end end function PropertyList:setPosition( pos ) self.bounds.x = pos.x self.bounds.y = pos.y + if self.visible then + self:draw() -- Update self.view. + end self:updateMouseOffset() end @@ -228,19 +235,19 @@ function PropertyList:setSize( size ) local scrollBarWidth = RL.GuiGetStyle( RL.LISTVIEW, RL.SCROLLBAR_WIDTH ) local borderWidth = RL.GuiGetStyle( RL.DEFAULT, RL.BORDER_WIDTH ) - self.content = Rect:new( + self.content = Rectangle:new( 0, self.gui.RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT, self.bounds.width - scrollBarWidth - self.padding * 2 - borderWidth * 2, self.bounds.height - scrollBarWidth - self.padding * 2 - borderWidth * 2 ) - self.defaultControlSize = Vec2:new( self.content.width, self.defaultControlHeight ) + self.defaultControlSize = Vector2:new( self.content.width, self.defaultControlHeight ) local _, _, view = RL.GuiScrollPanel( self.bounds, self.text, self.content, self.scroll, self.view ) - self.view = Rect:newT( view ) + self.view = Rectangle:newT( view ) - self.gui.view = Rect:new( 0, 0, self.view.width, self.view.height ) - self.framebufferSize = Vec2:new( self.bounds.width, self.bounds.height - self.gui.RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT ) + self.gui.view = Rectangle:new( 0, 0, self.view.width, self.view.height ) + self.framebufferSize = Vector2:new( self.bounds.width, self.bounds.height - self.gui.RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT ) if self.framebuffer ~= nil and not RL.IsGCUnloadEnabled() then RL.UnloadRenderTexture( self.framebuffer ) diff --git a/examples/raygui_extensions/tree_item.lua b/examples/raygui_extensions/tree_item.lua index 919eae0..7abaf4c 100644 --- a/examples/raygui_extensions/tree_item.lua +++ b/examples/raygui_extensions/tree_item.lua @@ -42,7 +42,7 @@ function TreeItem:setOpenIcon() end function TreeItem:draw() - local buttonRect = Rect:new( 0, 0, 0, 0 ) + local buttonRect = Rectangle:new( 0, 0, 0, 0 ) local hasContainer = 0 < #self.controls local lineCol = RL.GetColor( RL.GuiGetStyle( RL.DEFAULT, RL.LINE_COLOR ) ) @@ -59,7 +59,7 @@ function TreeItem:draw() }, lineCol ) end - local toggleRect = Rect:new( + local toggleRect = Rectangle:new( self.bounds.x + buttonRect.width, self.bounds.y, self.bounds.width - buttonRect.width, diff --git a/examples/raygui_extensions/tree_view.lua b/examples/raygui_extensions/tree_view.lua index 055694d..b15469c 100644 --- a/examples/raygui_extensions/tree_view.lua +++ b/examples/raygui_extensions/tree_view.lua @@ -20,8 +20,8 @@ function TreeView:new( bounds, text, callbacks, styles, tooltip ) object.bounds = bounds:clone() object.text = text - object.scroll = Vec2:new( 0, 0 ) - object.view = Rect:new( 0, 0, 0, 0 ) + object.scroll = Vector2:new( 0, 0 ) + object.view = Rectangle:new( 0, 0, 0, 0 ) object.callbacks = callbacks -- select, grab, drag. object.styles = styles object.tooltip = tooltip @@ -44,7 +44,7 @@ function TreeView:new( bounds, text, callbacks, styles, tooltip ) object.selectedItems = {} - object:setSize( Vec2:new( object.bounds.width, object.bounds.height ) ) + object:setSize( Vector2:new( object.bounds.width, object.bounds.height ) ) object._forceCheckScroll = false object._posY = 0 -- In control list update. @@ -61,7 +61,7 @@ function TreeView:new( bounds, text, callbacks, styles, tooltip ) end function TreeView:getDefaultBounds() - return Rect:new( self.padding, self.padding, self.defaultControlSize.x, self.defaultControlSize.y ) + return Rectangle:new( self.padding, self.padding, self.defaultControlSize.x, self.defaultControlSize.y ) end local function getControlBounds( control ) @@ -76,7 +76,7 @@ function TreeView:updateControl( control ) self._curId = self._curId + 1 if control.visible then - control:setPosition( Vec2:new( control.bounds.x, self._posY ) ) + control:setPosition( Vector2:new( control.bounds.x, self._posY ) ) local bounds = getControlBounds( control ) bounds.x = bounds.x + self._curDepth * self.indentation @@ -269,7 +269,7 @@ function TreeView:itemSelect( item ) end function TreeView:update() - local mousePos = Vec2:newT( RL.GetMousePosition() ) + local mousePos = Vector2:newT( RL.GetMousePosition() ) local guiMousePos = mousePos + self.gui.mouseOffset local mouseInView = self.view:checkCollisionPoint( mousePos ) @@ -360,7 +360,7 @@ function TreeView:draw() end function TreeView:updateMouseOffset() - self.gui.mouseOffset = Vec2:new( -self.view.x - self.scroll.x, -self.view.y - self.scroll.y ):scale( self.mouseScale ) + self.gui.mouseOffset = Vector2:new( -self.view.x - self.scroll.x, -self.view.y - self.scroll.y ):scale( self.mouseScale ) end function TreeView:setPosition( pos ) @@ -377,19 +377,19 @@ function TreeView:setSize( size ) local scrollBarWidth = RL.GuiGetStyle( RL.LISTVIEW, RL.SCROLLBAR_WIDTH ) local borderWidth = RL.GuiGetStyle( RL.DEFAULT, RL.BORDER_WIDTH ) - self.content = Rect:new( + self.content = Rectangle:new( 0, self.gui.RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT, self.bounds.width - scrollBarWidth - self.padding * 2 - borderWidth * 2, self.bounds.height - scrollBarWidth - self.padding * 2 - borderWidth * 2 ) - self.defaultControlSize = Vec2:new( self.content.width, self.defaultControlHeight ) + self.defaultControlSize = Vector2:new( self.content.width, self.defaultControlHeight ) local _, _, view = RL.GuiScrollPanel( self.bounds, self.text, self.content, self.scroll, self.view ) - self.view = Rect:newT( view ) + self.view = Rectangle:newT( view ) - self.gui.view = Rect:new( 0, 0, self.view.width, self.view.height ) - self.framebufferSize = Vec2:new( self.bounds.width, self.bounds.height - self.gui.RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT ) + self.gui.view = Rectangle:new( 0, 0, self.view.width, self.view.height ) + self.framebufferSize = Vector2:new( self.bounds.width, self.bounds.height - self.gui.RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT ) if self.framebuffer ~= nil and not RL.IsGCUnloadEnabled() then RL.UnloadRenderTexture( self.framebuffer ) diff --git a/examples/resources/lib/color.lua b/examples/resources/lib/color.lua index 99c44e6..8ca3920 100644 --- a/examples/resources/lib/color.lua +++ b/examples/resources/lib/color.lua @@ -33,10 +33,10 @@ local metatable = { return 4 end, __eq = function( c1, c2 ) - return math.floor( c1.r ) == math.floor( c2.r ) - and math.floor( c1.g ) == math.floor( c2.g ) - and math.floor( c1.b ) == math.floor( c2.b ) - and math.floor( c1.a ) == math.floor( c2.a ) + return RL.FloatEquals( c1.r, c2.r ) + and RL.FloatEquals( c1.g, c2.g ) + and RL.FloatEquals( c1.b, c2.b ) + and RL.FloatEquals( c1.a, c2.a ) end, __concat = function( a, b ) return tostring( a )..tostring( b ) @@ -164,6 +164,15 @@ function Color:lerp( color, amount ) ) end +function Color:round() + return Color:new( + RL.Round( self.r ), + RL.Round( self.g ), + RL.Round( self.b ), + RL.Round( self.a ) + ) +end + -- Temp pre generated objects to avoid "slow" table generation. local TEMP_COUNT = 100 diff --git a/examples/resources/lib/quaternion.lua b/examples/resources/lib/quaternion.lua index 92261ff..708fb34 100644 --- a/examples/resources/lib/quaternion.lua +++ b/examples/resources/lib/quaternion.lua @@ -31,7 +31,7 @@ local metatable = { return 4 end, __eq = function( q1, q2 ) - return RL.QuaternionEquals( q1, q2 ) == 1 + return RL.QuaternionEquals( q1, q2 ) end, __concat = function( a, b ) return tostring( a )..tostring( b ) diff --git a/examples/resources/lib/raygui.lua b/examples/resources/lib/raygui.lua index d0cf039..825bb26 100644 --- a/examples/resources/lib/raygui.lua +++ b/examples/resources/lib/raygui.lua @@ -59,7 +59,7 @@ function WindowBox:new( bounds, text, callbacks, styles, tooltip ) object.bounds = bounds:clone() object.text = text object.callbacks = callbacks -- close, grab, drag. - + object.visible = true object.disabled = false object.draggable = true @@ -102,7 +102,7 @@ function GroupBox:new( bounds, text, styles, tooltip ) object.text = text object.styles = styles object.tooltip = tooltip - + object.visible = true object.disabled = false @@ -134,7 +134,7 @@ function Line:new( bounds, text, styles, tooltip ) object.bounds = bounds:clone() object.text = text - + object.visible = true object.disabled = false object.styles = styles @@ -169,7 +169,7 @@ function Panel:new( bounds, text, callbacks, styles, tooltip ) object.bounds = bounds:clone() object.text = text object.callbacks = callbacks -- grab, drag. - + object.visible = true object.disabled = false object.draggable = true @@ -206,7 +206,7 @@ function GuiTabBar:new( bounds, text, active, callbacks, styles, tooltip ) object.text = text object.active = active object.callbacks = callbacks -- select, close, grab, drag. - + object.visible = true object.disabled = false object.styles = styles @@ -261,7 +261,7 @@ function ScrollPanel:new( bounds, text, content, scroll, callbacks, styles, tool object.scroll = scroll:clone() object.view = Rectangle:new( 0, 0, 0, 0 ) object.callbacks = callbacks -- scroll, grab, drag. - + object.visible = true object.disabled = false object.draggable = true @@ -310,7 +310,7 @@ function Label:new( bounds, text, styles, tooltip ) object.bounds = bounds:clone() object.text = text - + object.visible = true object.disabled = false object.styles = styles @@ -345,7 +345,7 @@ function Button:new( bounds, text, callbacks, styles, tooltip ) object.bounds = bounds:clone() object.text = text object.callbacks = callbacks -- pressed. - + object.visible = true object.disabled = false object.styles = styles @@ -384,7 +384,7 @@ function LabelButton:new( bounds, text, callbacks, styles, tooltip ) object.bounds = bounds:clone() object.text = text object.callbacks = callbacks -- pressed. - + object.visible = true object.disabled = false object.styles = styles @@ -424,7 +424,7 @@ function Toggle:new( bounds, text, active, callbacks, styles, tooltip ) object.text = text object.active = active object.callbacks = callbacks -- pressed. - + object.visible = true object.disabled = false object.styles = styles @@ -473,7 +473,7 @@ function ToggleGroup:new( bounds, text, active, callbacks, styles, tooltip ) object.text = text object.active = active object.callbacks = callbacks -- select. - + object.visible = true object.disabled = false object.focusBounds = {} @@ -538,7 +538,7 @@ function ToggleGroup:draw() if self.active ~= oldActive then local inBounds = false - + for _, bounds in ipairs( self.focusBounds ) do if self._gui:clickedInBounds( bounds ) then inBounds = true @@ -578,12 +578,12 @@ function CheckBox:new( bounds, text, checked, callbacks, styles, tooltip ) object.text = text object.checked = checked object.callbacks = callbacks -- pressed. - + object.visible = true object.disabled = false object.textBounds = Rectangle:new( 0, 0, 0, 0 ) object.focusBounds = bounds:clone() - + object._focusBoundsOffset = Vector2:new( 0, 0 ) -- Used in set position. object.styles = styles object.tooltip = tooltip @@ -636,7 +636,7 @@ function ComboBox:new( bounds, text, active, callbacks, styles, tooltip ) object.text = text object.active = active object.callbacks = callbacks -- select. - + object.visible = true object.disabled = false object.styles = styles @@ -686,7 +686,7 @@ function DropdownBox:new( bounds, text, active, editMode, callbacks, styles, too object.active = active object.editMode = editMode object.callbacks = callbacks -- select. - + object.visible = true object.disabled = false object.editModeBounds = bounds:clone() @@ -747,7 +747,7 @@ Spinner.__index = Spinner function Spinner:new( bounds, text, value, minValue, maxValue, editMode, callbacks, styles, tooltip ) local object = setmetatable( {}, self ) object._gui = nil - + object.bounds = bounds:clone() object.text = text object.value = value @@ -755,12 +755,12 @@ function Spinner:new( bounds, text, value, minValue, maxValue, editMode, callbac object.maxValue = maxValue object.editMode = editMode object.callbacks = callbacks -- edit. - + object.visible = true object.disabled = false object.textBounds = Rectangle:new( 0, 0, 0, 0 ) object.viewBounds = bounds:clone() - + object._viewBoundsOffset = Vector2:new( 0, 0 ) object.styles = styles object.tooltip = tooltip @@ -818,7 +818,7 @@ ValueBox.__index = ValueBox function ValueBox:new( bounds, text, value, minValue, maxValue, editMode, callbacks, styles, tooltip ) local object = setmetatable( {}, self ) object._gui = nil - + object.bounds = bounds:clone() object.text = text object.value = value @@ -826,12 +826,12 @@ function ValueBox:new( bounds, text, value, minValue, maxValue, editMode, callba object.maxValue = maxValue object.editMode = editMode object.callbacks = callbacks -- edit. - + object.visible = true object.disabled = false object.textBounds = Rectangle:new( 0, 0, 0, 0 ) object.viewBounds = bounds:clone() - + object._viewBoundsOffset = Vector2:new( 0, 0 ) object.styles = styles object.tooltip = tooltip @@ -938,7 +938,7 @@ Slider.__index = Slider function Slider:new( bounds, textLeft, textRight, value, minValue, maxValue, callbacks, styles, tooltip ) local object = setmetatable( {}, self ) object._gui = nil - + object.bounds = bounds:clone() object.textLeft = textLeft object.textRight = textRight @@ -952,7 +952,7 @@ function Slider:new( bounds, textLeft, textRight, value, minValue, maxValue, cal object.textLeftBounds = Rectangle:new( 0, 0, 0, 0 ) object.textRightBounds = Rectangle:new( 0, 0, 0, 0 ) object.viewBounds = bounds:clone() - + object._viewBoundsOffset = Vector2:new( 0, 0 ) object.styles = styles object.tooltip = tooltip @@ -1010,13 +1010,13 @@ function SliderBar:new( bounds, textLeft, textRight, value, minValue, maxValue, object.minValue = minValue object.maxValue = maxValue object.callbacks = callbacks -- edit. - + object.visible = true object.disabled = false object.textLeftBounds = Rectangle:new( 0, 0, 0, 0 ) object.textRightBounds = Rectangle:new( 0, 0, 0, 0 ) object.viewBounds = bounds:clone() - + object._viewBoundsOffset = Vector2:new( 0, 0 ) object.styles = styles object.tooltip = tooltip @@ -1074,13 +1074,13 @@ function ProgressBar:new( bounds, textLeft, textRight, value, minValue, maxValue object.minValue = minValue object.maxValue = maxValue object.callbacks = callbacks -- edit. - + object.visible = true object.disabled = false object.textLeftBounds = Rectangle:new( 0, 0, 0, 0 ) object.textRightBounds = Rectangle:new( 0, 0, 0, 0 ) object.viewBounds = bounds:clone() - + object._viewBoundsOffset = Vector2:new( 0, 0 ) object.styles = styles object.tooltip = tooltip @@ -1100,7 +1100,7 @@ function ProgressBar:draw() self.textRightBounds:setT( textRightBounds ) self.viewBounds = self.bounds:fit( self.textLeftBounds ):fit( self.textRightBounds ) self._viewBoundsOffset:set( self.viewBounds.x - self.bounds.x, self.viewBounds.y - self.bounds.y ) - + if self.value ~= oldValue then if not self._gui:clickedInBounds( self.bounds ) then self.value = oldValue @@ -1132,7 +1132,7 @@ function StatusBar:new( bounds, text, styles, tooltip ) object.bounds = bounds:clone() object.text = text - + object.visible = true object.disabled = false object.styles = styles @@ -1166,7 +1166,7 @@ function DummyRec:new( bounds, text, styles, tooltip ) object.bounds = bounds:clone() object.text = text - + object.visible = true object.disabled = false object.styles = styles @@ -1203,7 +1203,7 @@ function Grid:new( bounds, text, spacing, subdivs, callbacks, styles, tooltip ) object.spacing = spacing object.subdivs = subdivs object.callbacks = callbacks -- cellChange. - + object.mouseCell = Vector2:new( 0, 0 ) object.visible = true object.disabled = false @@ -1253,7 +1253,7 @@ function ListView:new( bounds, text, scrollIndex, active, callbacks, styles, too object.scrollIndex = scrollIndex object.active = active object.callbacks = callbacks -- select. - + object.visible = true object.disabled = false object.styles = styles @@ -1305,7 +1305,7 @@ function ListViewEx:new( bounds, text, scrollIndex, active, focus, callbacks, st object.active = active object.focus = focus object.callbacks = callbacks -- select. - + object.visible = true object.disabled = false object.styles = styles @@ -1356,7 +1356,7 @@ function MessageBox:new( bounds, title, message, buttons, callbacks, styles, too object.message = message object.buttons = buttons object.callbacks = callbacks -- pressed, grab, drag. - + object.buttonIndex = -1 object.visible = true object.disabled = false @@ -1406,7 +1406,7 @@ function TextInputBox:new( bounds, title, message, buttons, text, textMaxSize, s object.textMaxSize = textMaxSize object.secretViewActive = secretViewActive object.callbacks = callbacks -- pressed, grab, drag. - + object.buttonIndex = -1 object.visible = true object.disabled = false @@ -1452,13 +1452,13 @@ function ColorPicker:new( bounds, text, color, callbacks, styles, tooltip ) object.text = text object.color = color object.callbacks = callbacks -- edit. - + object.visible = true object.disabled = false object.focusBounds = Rectangle:new( 0, 0, 0, 0 ) object.styles = styles object.tooltip = tooltip - + object:updateFocusBounds() return object @@ -1518,7 +1518,7 @@ function ColorPanel:new( bounds, text, color, callbacks, styles, tooltip ) object.text = text object.color = color object.callbacks = callbacks -- edit. - + object.visible = true object.disabled = false object.styles = styles @@ -1568,7 +1568,7 @@ function ColorBarAlpha:new( bounds, text, alpha, callbacks, styles, tooltip ) object.text = text object.alpha = alpha object.callbacks = callbacks -- edit. - + object.visible = true object.disabled = false object.styles = styles @@ -1617,7 +1617,7 @@ function ColorBarHue:new( bounds, text, value, callbacks, styles, tooltip ) object.text = text object.value = value object.callbacks = callbacks -- edit. - + object.visible = true object.disabled = false object.styles = styles @@ -1667,7 +1667,7 @@ function GuiScrollBar:new( bounds, value, minValue, maxValue, callbacks, styles, object.minValue = minValue object.maxValue = maxValue object.callbacks = callbacks -- edit. - + object.visible = true object.disabled = false object.styles = styles @@ -1726,6 +1726,7 @@ function Raygui:new() object.defaultRect = Rectangle:new( 0, 0, 1, 1 ) -- For texture. object.defaultFont = RL.GuiGetFont() object.mouseOffset = Vector2:new( 0, 0 ) + object.mouseScale = Vector2:new( 1, 1 ) object.view = Rectangle:new( 0, 0, 0, 0 ) -- Active if larger than 0. Then only controls in view will be updated and drawn. object.tooltip = { text = nil, @@ -1756,7 +1757,10 @@ function Raygui:update() return end -- Set mouse offset if gui is for example embedded to some control. + local mouseOffset = RL.GetMouseOffset() + local mouseScale = RL.GetMouseScale() RL.SetMouseOffset( self.mouseOffset ) + RL.SetMouseScale( self.mouseScale ) if RL.IsMouseButtonPressed( RL.MOUSE_BUTTON_LEFT ) then self._mousePressPos:setT( RL.GetMousePosition() ) @@ -1771,15 +1775,15 @@ function Raygui:update() if control.visible and control.update ~= nil and self:inView( control ) then if control:update() then self.focused = i - + if i ~= self.tooltip.focused then self.tooltip.focused = -1 -- Note that we don't want it to be 0, same as self.focus. self.tooltip.timer = 0.0 end - + if control.tooltip ~= nil then self.tooltip.focused = i - + if self.tooltip.timer < self.tooltip.delay then self.tooltip.timer = self.tooltip.timer + RL.GetFrameTime() else @@ -1798,7 +1802,8 @@ function Raygui:update() self.tooltip.timer = 0.0 end - RL.SetMouseOffset( { 0, 0 } ) + RL.SetMouseOffset( mouseOffset ) + RL.SetMouseScale( mouseScale ) end function Raygui:drag( control ) @@ -1883,7 +1888,10 @@ function Raygui:draw() end -- Set mouse offset if gui is for example embedded to some control. + local mouseOffset = RL.GetMouseOffset() + local mouseScale = RL.GetMouseScale() RL.SetMouseOffset( self.mouseOffset ) + RL.SetMouseScale( self.mouseScale ) for i, control in ipairs( self.controls ) do if not self.locked and not self.disabled and i == self.focused then @@ -1911,7 +1919,8 @@ function Raygui:draw() RL.GuiUnlock() RL.GuiEnable() - RL.SetMouseOffset( { 0, 0 } ) + RL.SetMouseOffset( mouseOffset ) + RL.SetMouseScale( mouseScale ) end function Raygui:checkScrolling() diff --git a/examples/resources/lib/vector2.lua b/examples/resources/lib/vector2.lua index 8616a51..8739ced 100644 --- a/examples/resources/lib/vector2.lua +++ b/examples/resources/lib/vector2.lua @@ -34,7 +34,7 @@ local metatable = { return 2 end, __eq = function( v1, v2 ) - return RL.Vector2Equals( v1, v2 ) == 1 + return RL.Vector2Equals( v1, v2 ) end, __concat = function( a, b ) return tostring( a )..tostring( b ) diff --git a/examples/resources/lib/vector3.lua b/examples/resources/lib/vector3.lua index 3706017..bfecb07 100644 --- a/examples/resources/lib/vector3.lua +++ b/examples/resources/lib/vector3.lua @@ -36,7 +36,7 @@ local metatable = { return 3 end, __eq = function( v1, v2 ) - return RL.Vector3Equals( v1, v2 ) == 1 + return RL.Vector3Equals( v1, v2 ) end, __concat = function( a, b ) return tostring( a )..tostring( b ) diff --git a/src/rmath.c b/src/rmath.c index 1fa9690..aae76f8 100644 --- a/src/rmath.c +++ b/src/rmath.c @@ -137,13 +137,13 @@ int lmathWrap( lua_State* L ) { Check whether two given floats are almost equal -- Success return int +- Success return bool */ int lmathFloatEquals( lua_State* L ) { float x = luaL_checknumber( L, 1 ); float y = luaL_checknumber( L, 2 ); - lua_pushinteger( L, FloatEquals( x, y ) ); + lua_pushboolean( L, FloatEquals( x, y ) == 1 ); return 1; } @@ -570,13 +570,13 @@ int lmathVector2ClampValue( lua_State* L ) { Check whether two given vectors are almost equal -- Success return int +- Success return bool */ int lmathVector2Equals( lua_State* L ) { Vector2 v1 = uluaGetVector2( L, 1 ); Vector2 v2 = uluaGetVector2( L, 2 ); - lua_pushinteger( L, Vector2Equals( v1, v2 ) ); + lua_pushboolean( L, Vector2Equals( v1, v2 ) == 1 ); return 1; } @@ -1136,13 +1136,13 @@ int lmathVector3ClampValue( lua_State* L ) { Check whether two given vectors are almost equal -- Success return int +- Success return bool */ int lmathVector3Equals( lua_State* L ) { Vector3 v1 = uluaGetVector3( L, 1 ); Vector3 v2 = uluaGetVector3( L, 2 ); - lua_pushinteger( L, Vector3Equals( v1, v2 ) ); + lua_pushboolean( L, Vector3Equals( v1, v2 ) == 1 ); return 1; } @@ -1853,13 +1853,13 @@ int lmathQuaternionTransform( lua_State* L ) { Check whether two given quaternions are almost equal -- Success return int +- Success return bool */ int lmathQuaternionEquals( lua_State* L ) { Quaternion q1 = uluaGetQuaternion( L, 1 ); Quaternion q2 = uluaGetQuaternion( L, 2 ); - lua_pushinteger( L, QuaternionEquals( q1, q2 ) ); + lua_pushboolean( L, QuaternionEquals( q1, q2 ) == 1 ); return 1; } diff --git a/src/textures.c b/src/textures.c index a5189b1..9d7221a 100644 --- a/src/textures.c +++ b/src/textures.c @@ -1897,7 +1897,7 @@ Returns hexadecimal value for a Color int ltexturesColorToInt( lua_State* L ) { Color color = uluaGetColor( L, 1 ); - lua_pushinteger( L, ColorToInt( color ) ); + lua_pushinteger( L, (unsigned int)ColorToInt( color ) ); return 1; } |
