mirror of
https://github.com/AR2000AR/openComputers_codes.git
synced 2025-09-08 14:41:14 +02:00
[yaowbgl] can handle both pre 1.8 and 1.8 gpu.bitblt
This commit is contained in:
@@ -363,7 +363,7 @@
|
|||||||
["yaowbgl"] = {
|
["yaowbgl"] = {
|
||||||
["manifestVersion"] = "1.0",
|
["manifestVersion"] = "1.0",
|
||||||
["package"] = "yaowbgl",
|
["package"] = "yaowbgl",
|
||||||
["version"] = "1.1.0",
|
["version"] = "1.1.1",
|
||||||
["name"] = "Yet A Other Widget Based Graphical Library",
|
["name"] = "Yet A Other Widget Based Graphical Library",
|
||||||
["repo"] = "tree/master/yaowbgl",
|
["repo"] = "tree/master/yaowbgl",
|
||||||
["description"] = "New version of libgui, but using libclass2 and cleaner code and interface.",
|
["description"] = "New version of libgui, but using libclass2 and cleaner code and interface.",
|
||||||
|
Binary file not shown.
@@ -374,7 +374,7 @@
|
|||||||
dependencies = {
|
dependencies = {
|
||||||
["libclass2"] = "/"
|
["libclass2"] = "/"
|
||||||
}
|
}
|
||||||
version = "1.1.0",
|
version = "1.1.1",
|
||||||
name = "Yet A Other Widget Based Graphical Library",
|
name = "Yet A Other Widget Based Graphical Library",
|
||||||
description = "New version of libgui, but using libclass2 and cleaner code and interface.";
|
description = "New version of libgui, but using libclass2 and cleaner code and interface.";
|
||||||
authors = "AR2000AR",
|
authors = "AR2000AR",
|
||||||
|
@@ -2,6 +2,24 @@ local gpu = require("component").gpu
|
|||||||
local Widget = require("yaowbgl.widget.Widget")
|
local Widget = require("yaowbgl.widget.Widget")
|
||||||
local event = require("event")
|
local event = require("event")
|
||||||
|
|
||||||
|
--=============================================================================
|
||||||
|
--test bitblt bug
|
||||||
|
local bitBltFix = false
|
||||||
|
local testBuffer1 = gpu.allocateBuffer(2, 2)
|
||||||
|
local testBuffer2 = gpu.allocateBuffer(2, 2)
|
||||||
|
gpu.setActiveBuffer(testBuffer1)
|
||||||
|
gpu.set(1, 2, 'X')
|
||||||
|
gpu.bitblt(testBuffer2, 1, 2, 1, 1, testBuffer1, 1, 2)
|
||||||
|
gpu.setActiveBuffer(testBuffer2)
|
||||||
|
if (gpu.get(1, 2) == 'X') then
|
||||||
|
bitBltFix = false
|
||||||
|
else
|
||||||
|
bitBltFix = true
|
||||||
|
end
|
||||||
|
gpu.setActiveBuffer(0)
|
||||||
|
gpu.freeBuffer(testBuffer1)
|
||||||
|
gpu.freeBuffer(testBuffer2)
|
||||||
|
|
||||||
--=============================================================================
|
--=============================================================================
|
||||||
|
|
||||||
---@class Frame:Widget
|
---@class Frame:Widget
|
||||||
@@ -112,7 +130,11 @@ function Frame:draw()
|
|||||||
|
|
||||||
if (newBuffer and newBuffer ~= defaultBuffer) then
|
if (newBuffer and newBuffer ~= defaultBuffer) then
|
||||||
--copy the old buffer in the new buffer for transparancy effect
|
--copy the old buffer in the new buffer for transparancy effect
|
||||||
gpu.bitblt(newBuffer, self:absX(), self:absY(), self:width(), self:height(), defaultBuffer, self:absY(), self:absX())
|
if (bitBltFix) then
|
||||||
|
gpu.bitblt(newBuffer, self:absX(), self:absY(), self:width(), self:height(), defaultBuffer, self:absY(), self:absX())
|
||||||
|
else
|
||||||
|
gpu.bitblt(newBuffer, self:absX(), self:absY(), self:width(), self:height(), defaultBuffer, self:absX(), self:absY())
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--clean background
|
--clean background
|
||||||
@@ -141,7 +163,11 @@ function Frame:draw()
|
|||||||
end
|
end
|
||||||
--restore buffer
|
--restore buffer
|
||||||
if (newBuffer and newBuffer ~= defaultBuffer) then
|
if (newBuffer and newBuffer ~= defaultBuffer) then
|
||||||
gpu.bitblt(defaultBuffer, self:absX(), self:absY(), self:width(), self:height(), newBuffer, self:absY(), self:absX())
|
if (bitBltFix) then
|
||||||
|
gpu.bitblt(defaultBuffer, self:absX(), self:absY(), self:width(), self:height(), newBuffer, self:absY(), self:absX())
|
||||||
|
else
|
||||||
|
gpu.bitblt(defaultBuffer, self:absX(), self:absY(), self:width(), self:height(), newBuffer, self:absX(), self:absY())
|
||||||
|
end
|
||||||
gpu.setActiveBuffer(defaultBuffer)
|
gpu.setActiveBuffer(defaultBuffer)
|
||||||
gpu.freeBuffer(newBuffer)
|
gpu.freeBuffer(newBuffer)
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user