mirror of
https://github.com/Ale32bit/Capy64.git
synced 2025-01-18 18:46:43 +00:00
Merged screen and graphics lib into new gpu lib
This commit is contained in:
parent
c6e3fa99c8
commit
107019b68f
2 changed files with 73 additions and 104 deletions
|
@ -6,15 +6,36 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Capy64.LuaRuntime.Libraries;
|
||||
|
||||
public class Graphics : IPlugin
|
||||
public class GPU : IPlugin
|
||||
{
|
||||
|
||||
private static IGame _game;
|
||||
public Graphics(IGame game)
|
||||
public GPU(IGame game)
|
||||
{
|
||||
_game = game;
|
||||
}
|
||||
|
||||
private LuaRegister[] GfxLib = new LuaRegister[] {
|
||||
private LuaRegister[] gpuLib = new LuaRegister[] {
|
||||
new()
|
||||
{
|
||||
name = "getSize",
|
||||
function = L_GetSize,
|
||||
},
|
||||
new()
|
||||
{
|
||||
name = "setSize",
|
||||
function = L_SetSize,
|
||||
},
|
||||
new()
|
||||
{
|
||||
name = "getScale",
|
||||
function = L_GetScale,
|
||||
},
|
||||
new()
|
||||
{
|
||||
name = "setScale",
|
||||
function = L_SetScale,
|
||||
},
|
||||
new()
|
||||
{
|
||||
name = "plot",
|
||||
|
@ -70,15 +91,61 @@ public class Graphics : IPlugin
|
|||
|
||||
public void LuaInit(Lua state)
|
||||
{
|
||||
state.RequireF("graphics", Open, false);
|
||||
state.RequireF("gpu", OpenLib, false);
|
||||
}
|
||||
|
||||
public int Open(IntPtr state)
|
||||
public int OpenLib(IntPtr state)
|
||||
{
|
||||
var l = Lua.FromIntPtr(state);
|
||||
l.NewLib(GfxLib);
|
||||
l.NewLib(gpuLib);
|
||||
return 1;
|
||||
}
|
||||
private static int L_GetSize(IntPtr state)
|
||||
{
|
||||
var L = Lua.FromIntPtr(state);
|
||||
|
||||
L.PushInteger(_game.Width);
|
||||
L.PushInteger(_game.Height);
|
||||
|
||||
return 2;
|
||||
}
|
||||
|
||||
private static int L_SetSize(IntPtr state)
|
||||
{
|
||||
var L = Lua.FromIntPtr(state);
|
||||
|
||||
var w = L.CheckInteger(1);
|
||||
var h = L.CheckInteger(2);
|
||||
|
||||
_game.Width = (int)w;
|
||||
_game.Height = (int)h;
|
||||
|
||||
_game.UpdateSize();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
private static int L_GetScale(IntPtr state)
|
||||
{
|
||||
var L = Lua.FromIntPtr(state);
|
||||
|
||||
L.PushNumber(_game.Scale);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
private static int L_SetScale(IntPtr state)
|
||||
{
|
||||
var L = Lua.FromIntPtr(state);
|
||||
|
||||
var s = L.CheckNumber(1);
|
||||
|
||||
_game.Scale = (float)s;
|
||||
|
||||
_game.UpdateSize();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
private static int L_Plot(IntPtr state)
|
||||
{
|
|
@ -1,98 +0,0 @@
|
|||
using Capy64.API;
|
||||
using KeraLua;
|
||||
using System;
|
||||
|
||||
namespace Capy64.LuaRuntime.Libraries;
|
||||
|
||||
public class Screen : IPlugin
|
||||
{
|
||||
private static IGame _game;
|
||||
public Screen(IGame game)
|
||||
{
|
||||
_game = game;
|
||||
}
|
||||
|
||||
private LuaRegister[] ScreenLib = new LuaRegister[] {
|
||||
new()
|
||||
{
|
||||
name = "getSize",
|
||||
function = L_GetSize,
|
||||
},
|
||||
new()
|
||||
{
|
||||
name = "setSize",
|
||||
function = L_SetSize,
|
||||
},
|
||||
new()
|
||||
{
|
||||
name = "getScale",
|
||||
function = L_GetScale,
|
||||
},
|
||||
new()
|
||||
{
|
||||
name = "setScale",
|
||||
function = L_SetScale,
|
||||
},
|
||||
new(), // NULL
|
||||
};
|
||||
|
||||
public void LuaInit(Lua state)
|
||||
{
|
||||
state.RequireF("screen", Open, false);
|
||||
}
|
||||
|
||||
public int Open(IntPtr state)
|
||||
{
|
||||
var l = Lua.FromIntPtr(state);
|
||||
l.NewLib(ScreenLib);
|
||||
return 1;
|
||||
}
|
||||
|
||||
private static int L_GetSize(IntPtr state)
|
||||
{
|
||||
var L = Lua.FromIntPtr(state);
|
||||
|
||||
L.PushInteger(_game.Width);
|
||||
L.PushInteger(_game.Height);
|
||||
|
||||
return 2;
|
||||
}
|
||||
|
||||
private static int L_SetSize(IntPtr state)
|
||||
{
|
||||
var L = Lua.FromIntPtr(state);
|
||||
|
||||
var w = L.CheckInteger(1);
|
||||
var h = L.CheckInteger(2);
|
||||
|
||||
_game.Width = (int)w;
|
||||
_game.Height = (int)h;
|
||||
|
||||
_game.UpdateSize();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
private static int L_GetScale(IntPtr state)
|
||||
{
|
||||
var L = Lua.FromIntPtr(state);
|
||||
|
||||
L.PushNumber(_game.Scale);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
private static int L_SetScale(IntPtr state)
|
||||
{
|
||||
var L = Lua.FromIntPtr(state);
|
||||
|
||||
var s = L.CheckNumber(1);
|
||||
|
||||
_game.Scale = (float)s;
|
||||
|
||||
_game.UpdateSize();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue