imgui

Scrix

Известный
Автор темы
232
293
Версия MoonLoader
.027.0-preview
Кто шарит как сделать такой линейный график ?
sa-mp-017.png
 
Решение
Кто шарит как сделать такой линейный график ?Посмотреть вложение 93467
C++:
IMGUI_API void          PlotLines(const char* label, const float* values, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0), int stride = sizeof(float));
IMGUI_API void          PlotLines(const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0));
Как по мне, максимально простой пример:

Lua:
local memory = require 'memory'
local imgui = require 'imgui'
local window =...

CaJlaT

Овощ
Модератор
2,806
2,609
Кто шарит как сделать такой линейный график ?Посмотреть вложение 93467
C++:
IMGUI_API void          PlotLines(const char* label, const float* values, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0), int stride = sizeof(float));
IMGUI_API void          PlotLines(const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0));
Как по мне, максимально простой пример:

Lua:
local memory = require 'memory'
local imgui = require 'imgui'
local window = imgui.ImBool(false)
local update_time = imgui.ImFloat(0.5)
local lines_count = imgui.ImInt(50)
local fps1 = {}
local ffi = require 'ffi'
fps = {
    last_update = 0,
    value = 0,
    get = function()
        if os.clock() - fps.last_update > update_time.v then
            fps.last_update = os.clock()
            fps.value = math.ceil(ffi.cast('float*', 0xB7CB50)[0])
            table.insert(fps1, fps.value)
            while #fps1 > lines_count.v do table.remove(fps1, 1) end
        end
        return fps.value
    end
}
function main()
    sampRegisterChatCommand('test', function()
        window.v = not window.v
    end)
    while true do
        wait(0)
        imgui.Process = window.v
    end
end
function imgui.OnDrawFrame()
    imgui.Begin('title', window)
        imgui.Text(tostring(fps.get()))
        imgui.PlotLines('FPS', fps1)
        imgui.SliderFloat('Update Time', update_time, 0.0, 1.0)
        imgui.SliderInt('Lines Count', lines_count, 20, 200)
    imgui.End()
end
P.s: На видос с доступом по ссылке прилетело АП, класс)
 
  • Влюблен
Реакции: Scrix