[mimgui] DrawList:AddText | Не выводит текст

_Dino_

Активный
Автор темы
135
51
Версия MoonLoader
.026-beta
Не могу понять в чём проблема с выводом текста внутри окна.

LUA:
imgui.OnFrame(
    function() return (window.alpha > 0.00) end,
    function(self)
        local screenX, screenY = getScreenResolution()
        local windowX, windowY = 600, 300
        self.HideCursor = not window.state
        imgui.PushStyleVarFloat(imgui.StyleVar.Alpha, window.alpha)
        imgui.SetNextWindowPos(imgui.ImVec2(screenX/2, screenY/2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(windowX, windowY), imgui.Cond.FirstUseEver)
        imgui.Begin("##pisyaboba", _, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoScrollWithMouse + imgui.WindowFlags.NoScrollbar)
        local size = imgui.GetWindowSize()
        local dl = imgui.GetWindowDrawList()
        R, G, B = rainbow(1.25, 255, 3)
        imgui.GetWindowDrawList():AddText(imgui.ImVec2(40, 20), join_argb((255*window.alpha)/1.15, R, G, B), "NOT A GAY.", nil) -- Не видно нигде
        imgui.GetBackgroundDrawList():AddText(imgui.ImVec2(40, 20), join_argb((255*window.alpha)/1.15, R, G, B), "I GAY.", nil) -- Слева вверху экрана
        imgui.End() imgui.PopStyleVar()
    end
)
 
Решение
Lua:
imgui.Begin("##pisyaboba", _, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoScrollWithMouse + imgui.WindowFlags.NoScrollbar)
local size = imgui.GetWindowSize()
local dl = imgui.GetWindowDrawList()
local cursor = imgui.GetCursorScreenPos()
R, G, B = rainbow(1.25, 255, 3)
imgui.GetWindowDrawList():AddText(imgui.ImVec2(cursor.x + 40, cursor.y + 20), join_argb((255*window.alpha)/1.15, R, G, B), "NOT A GAY.", nil) -- Не видно нигде
imgui.GetBackgroundDrawList():AddText(imgui.ImVec2(40, 20), join_argb((255*window.alpha)/1.15, R, G, B), "I GAY.", nil) -- Слева вверху экрана
imgui.End() imgui.PopStyleVar()

Oleg Sleash

Участник
69
97
Не могу понять в чём проблема с выводом текста внутри окна.

LUA:
imgui.OnFrame(
    function() return (window.alpha > 0.00) end,
    function(self)
        local screenX, screenY = getScreenResolution()
        local windowX, windowY = 600, 300
        self.HideCursor = not window.state
        imgui.PushStyleVarFloat(imgui.StyleVar.Alpha, window.alpha)
        imgui.SetNextWindowPos(imgui.ImVec2(screenX/2, screenY/2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(windowX, windowY), imgui.Cond.FirstUseEver)
        imgui.Begin("##pisyaboba", _, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoScrollWithMouse + imgui.WindowFlags.NoScrollbar)
        local size = imgui.GetWindowSize()
        local dl = imgui.GetWindowDrawList()
        R, G, B = rainbow(1.25, 255, 3)
        imgui.GetWindowDrawList():AddText(imgui.ImVec2(40, 20), join_argb((255*window.alpha)/1.15, R, G, B), "NOT A GAY.", nil) -- Не видно нигде
        imgui.GetBackgroundDrawList():AddText(imgui.ImVec2(40, 20), join_argb((255*window.alpha)/1.15, R, G, B), "I GAY.", nil) -- Слева вверху экрана
        imgui.End() imgui.PopStyleVar()
    end
)
Как я знаю, то GetWindowDrawList() "рисует" только на окне, если попытаться отрисовать фигуру при помощи GetWindowDrawList() за пределами одного из окон (m)imgui, то его просто не будет видно, на сколько я помню у дравлиста отсчёт идёт с {0;0} экрана, то есть, что бы разместить GetWindowDrawList() в углу вашего окна, надо будет вот та изебаться:
Lua:
dl = GetWindowDrawList()
local winPos = {x = screenX/2, y = screenY/2}
dl:AddText(imgui.ImVec2(winPos.x + 40, winPos.y + 20), join_argb((255*window.alpha)/1.15, R, G, B), "NOT A GAY.", nil)
-- понятное дело. что можно сделать и так:
GetWindowDrawList():AddText(imgui.ImVec2(screenX/2 + 40, screenY/2 + 20), join_argb((255*window.alpha)/1.15, R, G, B), "NOT A GAY.", nil)
--Но большинство предпочитает сокрощать до dl

А вот уже GetBackgroundDrawList() и предназначен для отрисовки фрагментов вне окна самого (m)imgui
 

meowprd

Тот самый Котовский
Проверенный
1,280
712
Lua:
imgui.Begin("##pisyaboba", _, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoScrollWithMouse + imgui.WindowFlags.NoScrollbar)
local size = imgui.GetWindowSize()
local dl = imgui.GetWindowDrawList()
local cursor = imgui.GetCursorScreenPos()
R, G, B = rainbow(1.25, 255, 3)
imgui.GetWindowDrawList():AddText(imgui.ImVec2(cursor.x + 40, cursor.y + 20), join_argb((255*window.alpha)/1.15, R, G, B), "NOT A GAY.", nil) -- Не видно нигде
imgui.GetBackgroundDrawList():AddText(imgui.ImVec2(40, 20), join_argb((255*window.alpha)/1.15, R, G, B), "I GAY.", nil) -- Слева вверху экрана
imgui.End() imgui.PopStyleVar()