GFX update :D
This commit is contained in:
1 parent
05ca0f10a2
commit
c1b4ef2644
70 files changed
+1398
-5174
No files matched your search
@@ -494,7 +494,7 @@ local ok, err = xpcall(function()
|
||||
h.close()
|
||||
end,
|
||||
firmware=apis,
|
||||
reboot=false,
|
||||
status="running",
|
||||
beep=function() end
|
||||
}
|
||||
|
||||
@@ -505,7 +505,7 @@ local ok, err = xpcall(function()
|
||||
|
||||
local kernelCoro = coroutine.create(function()
|
||||
--pf
|
||||
---@diagnostic disable-next-line: param-type-mismatch-
|
||||
---@diagnostic disable-next-line: param-type-mismatch
|
||||
local ok, err = xpcall(Kernel, debug.traceback, EFI)
|
||||
if not ok then
|
||||
error(err)
|
||||
@@ -569,14 +569,18 @@ local ok, err = xpcall(function()
|
||||
end
|
||||
end
|
||||
if status == "error" or coroutine.status(kernelCoro) == "dead" then
|
||||
if EFI.reboot then
|
||||
if EFI.status=="reboot" then
|
||||
apis.os.reboot()
|
||||
elseif EFI.status=="shutdown" then
|
||||
apis.os.shutdown()
|
||||
end
|
||||
displaySuperBadError("Kernel error: " .. tostring(err))
|
||||
coroutine.yield("key")
|
||||
elseif status == "success" then
|
||||
if EFI.reboot then
|
||||
if EFI.status=="reboot" then
|
||||
apis.os.reboot()
|
||||
elseif EFI.status=="shutdown" then
|
||||
apis.os.shutdown()
|
||||
end
|
||||
displaySuperBadError("Kernel error: Attempted to yield main thread\n"..debug.traceback(kernelCoro, "Attempted to yield main thread"))
|
||||
coroutine.yield("key")
|
||||
|
||||
@@ -163,7 +163,7 @@ local function createDisk(id, basePath, readonly, periph)
|
||||
local disk = {address = id, isReadOnly = function() return readonly end}
|
||||
|
||||
function disk:spaceUsed()
|
||||
return fs.getCapacity(basePath) - fs.getFreeSpace(basePath)
|
||||
return (fs.getCapacity(basePath) or 0) - (fs.getFreeSpace(basePath) or 0)
|
||||
end
|
||||
|
||||
function disk:spaceTotal() return fs.getCapacity(basePath) end
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
--:Minify:--
|
||||
local kernel=...
|
||||
local fifo=kernel.newFifo()
|
||||
kernel.devfs.data["input"]["mouse1"] = function(op, mode)
|
||||
if op=="type" then
|
||||
return "Mouse"
|
||||
elseif op=="open" then
|
||||
local h = {
|
||||
read=function(amount)
|
||||
local rv=""
|
||||
for i=1, amount or 1 do
|
||||
local event = {fifo.pop()}
|
||||
if event[1] then
|
||||
rv=rv..event[1]
|
||||
end
|
||||
end
|
||||
---@diagnostic disable-next-line: cast-local-type
|
||||
if rv=="" then rv=nil end
|
||||
return rv
|
||||
end
|
||||
}
|
||||
return h
|
||||
end
|
||||
end
|
||||
kernel.cct.mouse={fifo=fifo}
|
||||
@@ -1,6 +1,8 @@
|
||||
--:Minify:--
|
||||
local kernel = ...
|
||||
local peripheral=kernel.cct.peripheral
|
||||
kernel.cct.gfx={}
|
||||
kernel.cct.term={}
|
||||
|
||||
local colors = {
|
||||
[0xFFFFFF]=0x0001,
|
||||
@@ -155,6 +157,7 @@ local function serializeBool(bool)
|
||||
end
|
||||
|
||||
local function newtty(obj, id, ev)
|
||||
kernel.cct.term[id]=obj
|
||||
obj.setPaletteColor(0x1, 0xFFFFFF) -- #000000
|
||||
obj.setPaletteColor(0x2, 0xFF0000) -- #FFFFFF
|
||||
obj.setPaletteColor(0x4, 0x00FF00) -- #FF0000
|
||||
@@ -176,17 +179,6 @@ local function newtty(obj, id, ev)
|
||||
return "Terminal"
|
||||
elseif op=="open" then
|
||||
local h = {
|
||||
read=function(amount)
|
||||
local rv=""
|
||||
for i=1, amount or 1 do
|
||||
local event = {ev()}
|
||||
if event[1] then
|
||||
rv=rv..event[1]
|
||||
end
|
||||
end
|
||||
if rv=="" then rv=nil end
|
||||
return rv
|
||||
end,
|
||||
write=function(content)
|
||||
write(content, obj)
|
||||
end,
|
||||
@@ -221,18 +213,16 @@ local function newtty(obj, id, ev)
|
||||
return false
|
||||
end,
|
||||
gplt=function()
|
||||
return plt
|
||||
return table.deepcopy(plt)
|
||||
end,
|
||||
gfx=function(...)
|
||||
if kernel.cct.gfx[id] then return kernel.cct.gfx[id] else return false end
|
||||
end,
|
||||
id=function()
|
||||
return id
|
||||
end
|
||||
}
|
||||
if mode=="rw" then
|
||||
return h
|
||||
elseif mode=="r" then
|
||||
h["write"]=nil
|
||||
return h
|
||||
elseif mode=="w" then
|
||||
h["read"]=nil
|
||||
return h
|
||||
end
|
||||
return h
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -259,23 +249,14 @@ kernel.devfs.data["input"]["keyboard1"] = function(op, mode)
|
||||
rv=rv..event[1]
|
||||
end
|
||||
end
|
||||
---@diagnostic disable-next-line: cast-local-type
|
||||
if rv=="" then rv=nil end
|
||||
return rv
|
||||
end,
|
||||
write=function(content)
|
||||
end,
|
||||
gctrl=function()
|
||||
return serializeBool(kernel.cct.ctrl)..";"..serializeBool(kernel.cct.alt)
|
||||
end
|
||||
}
|
||||
if mode=="rw" then
|
||||
return h
|
||||
elseif mode=="r" then
|
||||
h["write"]=nil
|
||||
return h
|
||||
elseif mode=="w" then
|
||||
h["read"]=nil
|
||||
return h
|
||||
end
|
||||
return h
|
||||
end
|
||||
end
|
||||
@@ -71,8 +71,10 @@ kernel.processes.cctdaemon = function()
|
||||
elseif eventType == "mouse_scroll" then
|
||||
if event[2] == 1 then
|
||||
kernel.cct.fifo.push("[nS")
|
||||
kernel.cct.mouse.fifo.push("[nS")
|
||||
else
|
||||
kernel.cct.fifo.push("[nT")
|
||||
kernel.cct.mouse.fifo.push("[nT")
|
||||
end
|
||||
elseif eventType == "http_success" then
|
||||
if kernel.cct.httpqueue[event[2]] then
|
||||
@@ -85,6 +87,16 @@ kernel.processes.cctdaemon = function()
|
||||
kernel.cct.httperror[event[2]]=event[3]
|
||||
kernel.cct.httpresponse[event[2]]=event[4]
|
||||
end
|
||||
elseif eventType == "mouse_click" then
|
||||
--"[C;X;Y;C"
|
||||
-- 1 = left
|
||||
-- 2 = right
|
||||
-- 3 = middle
|
||||
kernel.cct.mouse.fifo.push("[C;"..tostring(event[3])..";"..tostring(event[4])..";"..tostring(event[2]))
|
||||
elseif eventType == "mouse_drag" then
|
||||
kernel.cct.mouse.fifo.push("[D;"..tostring(event[3])..";"..tostring(event[4])..";"..tostring(event[2]))
|
||||
elseif eventType == "mouse_up" then
|
||||
kernel.cct.mouse.fifo.push("[U;"..tostring(event[3])..";"..tostring(event[4])..";"..tostring(event[2]))
|
||||
else
|
||||
if kernel.cct.eventhooks[eventType] then
|
||||
local ok,err = xpcall(kernel.cct.eventhooks[eventType], debug.traceback, table.unpack(event))
|
||||
|
||||
@@ -35,6 +35,14 @@ function kernel.main()
|
||||
local totalTaskTime = 0
|
||||
local taskTimes = {}
|
||||
|
||||
for id,hook in ipairs(kernel.mainHooks) do
|
||||
local ok,err = xpcall(hook, debug.traceback)
|
||||
if not ok then
|
||||
kernel.log("[MAIN HOOK ERR]: "..err, "ERROR", 0xFF0000)
|
||||
kernel.mainHooks[id]=nil
|
||||
end
|
||||
end
|
||||
|
||||
for pid, task in pairs(kernel.tasks) do
|
||||
if kernel.exitMain then break end
|
||||
|
||||
@@ -42,7 +50,7 @@ function kernel.main()
|
||||
for id,hook in ipairs(list) do
|
||||
local ok,err = xpcall(hook, debug.traceback, task, pid)
|
||||
if not ok then
|
||||
kernel.log("[MAIN HOOK ERR]: "..err, "ERROR", 0xFF0000)
|
||||
kernel.log("[TASK HOOK ERR]: "..err, "ERROR", 0xFF0000)
|
||||
list[id]=nil
|
||||
end
|
||||
end
|
||||
@@ -148,4 +156,6 @@ function kernel.main()
|
||||
kernel.saveLog()
|
||||
end
|
||||
end
|
||||
kernel.log("Exited main")
|
||||
kernel.saveLog()
|
||||
end
|
||||
Reference in new issue
Block a user