LUA скрипт [GS] DX Render++

Пользователь
Пользователь
Статус
Оффлайн
Регистрация
6 Окт 2021
Сообщения
68
Реакции
58
PREVIEW:
1762362528959.png


Вечер в хату. Блатняк завозит в скит рендер++ extended limited edition. Закругления, картинки, тени, разные шрифты все че надо.

dll не переименовывать, закидывать render.lua и dll в папку lua

CREDITS: @trapwest & @Klient

Код:
Expand Collapse Copy
local render = require( 'render' )

local col_t = render.col_t
local vec2_t = render.vec2_t
local font_flags = render.font_flags

local bytes = "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A\x00\x00\x00\x0D\x49\x48\x44\x52\x00\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1F\xF3\xFF\x61\x00\x00\x00\x01\x73\x52\x47\x42\x00\xAE\xCE\x1C\xE9\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7C\x08\x64\x88\x00\x00\x00\xB7\x49\x44\x41\x54\x38\x8D\xA5\x93\xD1\x11\x82\x40\x0C\x44\x5F\xAC\x80\x12\x28\x81\x0E\xB4\x04\x4B\xC0\xCA\xB8\x12\xEC\xC0\xA1\x02\xCE\x0A\xBC\x16\xAC\x60\xFD\xF0\x98\x41\x08\x07\x23\xFB\x99\xDB\xDD\x24\x97\x04\x0E\xC2\xBC\xA0\xA4\x06\x38\x03\x4D\x0E\x45\xA0\x37\xB3\x58\x74\x93\x54\x49\xEA\xB4\x8E\x4E\x52\x55\x12\x0F\x05\xF1\x88\xC1\x35\x91\x14\x76\x88\x47\x84\x45\xCF\x0E\x29\x6D\x98\xD6\x00\xA7\xEC\x71\x71\xBA\x4A\x66\xD6\x02\x37\xE0\xED\xBC\x5F\xA7\x06\x8D\x43\x00\xC0\xCC\x42\x4E\xF0\x9C\x3D\xFD\x54\xB0\x07\xF2\x82\xA3\xC1\xEA\x7C\x25\xB5\xC0\x83\x65\x95\x69\x4A\xF2\x3E\xF1\xA5\xF2\x4E\xD4\xF3\x4C\xFF\x8F\x31\x1B\x54\x92\xE2\x0E\x71\xD4\xC6\x36\x96\x2A\x09\x73\xF1\xDA\x31\xD5\x7C\xE7\x3C\x3D\xA6\xBB\x99\x25\x8F\x7F\x08\x1F\xB1\xA8\x87\x34\xB5\x43\x0E\xB3\x00\x00\x00\x00\x49\x45\x4E\x44\xAE\x42\x60\x82"
local image_bytes = render.load_image( bytes )
local image_file = render.load_image( 'D:/Steam/steamapps/common/Counter-Strike Global Offensive/img.jpg' )

local font = render.load_font( 'C:/Windows/Fonts/Verdana.ttf', 40, bit.bor( font_flags.bold ) )

render.set_callback( function( )
    local size = render.get_text_size( font, 'text' )

    render.add_image( image_bytes, 100, 100, 20, 20, col_t( 1, 1, 1, 1 ) )
    render.push_clip_rect( 400, 100, 200, 200 )
    render.add_image( image_file, 400, 100, 736 / 2, 693 / 2, col_t( 1, 1, 1, 1 ), 30 )
    render.pop_clip_rect( )

    render.add_blur( 477, 180, size.x + 10, size.y + 10, col_t( 1, 1, 1, 1 ), 4, 10 )
    render.add_rect_shadow( 100, 100, 736 / 2, 693 / 2, col_t( 0, 0, 0, 1 ) )
    render.add_rect_filled( 175, 185, size.x + 10, size.y + 10, col_t( 1, 1, 1, 1 ), 10 )
    render.add_rect( 477, 180, size.x + 10, size.y + 10, col_t( 1, 1, 1, 1 ), 3, 10 )
    render.add_text( font, 'text', 482, 181, col_t( 1, 1, 1, 1 ) )

    local polygons = { vec2_t( 125, 100 ), vec2_t( 162, 150 ), vec2_t( 200, 100 ) }
    render.add_line( polygons[1].x, polygons[1].y, polygons[2].x, polygons[2].y, col_t( 1, 1, 1, 1 ) )

    render.add_polyshadow( polygons, col_t( 0, 0, 0, 1 ) )
    render.add_polyfilled( polygons, col_t( 1, 0, 0, 1 ) )
    render.add_polyline( polygons, col_t( 1, 1, 1, 1 ), 3, bit.lshift( 1, 0 ) )

    render.add_circle_filled( 200, 200, 30, 25, col_t( 1, 0, 0, 1 ) )
    render.add_circle( 200, 200, 30, 25, col_t( 1, 1, 1, 1 ), 3 )
    render.add_circle_shadow( 200, 200, 30, 25, col_t( 1, 1, 1, 1 ) )
end )

Пожалуйста, авторизуйтесь для просмотра ссылки.

Пожалуйста, авторизуйтесь для просмотра ссылки.
 

Вложения

для того же, для чего render.lua выглядит так
1762363618967.png

парни просто собрали проект дллки с експортами имгуя и типо встречайте, укажи в сюда ещё Омара ocornut'a в кредитсы
 
для того же, для чего render.lua выглядит такПосмотреть вложение 319208
парни просто собрали проект дллки с експортами имгуя и типо встречайте, укажи в сюда ещё Омара ocornut'a в кредитсы
То что ты дал в примере свое - это говно, именно прям жидчайшее. Ты это делал как я понимаю для людей, но кто нахуй этим высером будет пользоваться?
Что с кодом нахуй? Ты его под приколами писал или че?
Оно все выглядит как ебучая шутка, ничего серьезного в этой работе нет.
В этом куске дерьма разбираться кто захочет? Да никто)) Это никому нахуй не нужно, а если и действительно кому-то будет нужно, посмотрев под капот этой ссанины можно уйти нахуй и не посещать больше эту страницу.
Ты джун, много выебываешься друже))

fuck architecture, all my homies use god.h
 
Ты это делал как я понимаю для людей, но кто нахуй этим высером будет пользоваться? В этом куске дерьма разбираться кто захочет? Да никто)) Это никому нахуй не нужно, а если и действительно кому-то будет нужно, посмотрев под капот этой ссанины можно уйти нахуй и не посещать больше эту страницу.
хриситосенс, 5к юзеров, дальше вопросы какие?
 
То что ты дал в примере свое - это говно, именно прям жидчайшее. Ты это делал как я понимаю для людей, но кто нахуй этим высером будет пользоваться?
ну не скажи, если ты поленился заняться ресерчем и узнать, нахуй ты вообще пишешь?-
Оно все выглядит как ебучая шутка, ничего серьезного в этой работе нет.
Понимаешь, дело в том, что для тебя любая хуета и любой пет проект это что то серьезное автоматом, предполагаю, что ты питонист или жсник, который кроме веба ничего не трогал.
В этом куске дерьма разбираться кто захочет? Да никто)) Это никому нахуй не нужно, а если и действительно кому-то будет нужно, посмотрев под капот этой ссанины можно уйти нахуй и не посещать больше эту страницу.
Посмотри любой хедер boost проекта, там обычно один хедере реализует всю библиотеку, или можешь почекать nlohmann json реализацию. Я понимаю, ты хочешь что бы для каждой структуры или алиаса был свой хедер и отдельно сппшный файлик, ты у нас жава кодер.
Ты джун, много выебываешься друже))
В таком случае джун намного грамотнее и умнее тебя, тебе не стыдно так себе же в ногу стрелять?
fuck architecture, all my homies use god.h
опять же, можешь почекать boost и nlohmann::json, в моем проекте действительно есть god object'ы, но я от них стараюсь уйти в сторону синглтонов, что можно заметить по первой переходной версии сдк на с++20.

В общем не зная целей проекта и зачем он нужен, ты решил высрать польнейший бред лишь бы зацепить меня, но ты не один такой, мне не в падлу ответить человеку, который в теме 0.
 
ну не скажи, если ты поленился заняться ресерчем и узнать, нахуй ты вообще пишешь?-

Понимаешь, дело в том, что для тебя любая хуета и любой пет проект это что то серьезное автоматом, предполагаю, что ты питонист или жсник, который кроме веба ничего не трогал.

Посмотри любой хедер boost проекта, там обычно один хедере реализует всю библиотеку, или можешь почекать nlohmann json реализацию. Я понимаю, ты хочешь что бы для каждой структуры или алиаса был свой хедер и отдельно сппшный файлик, ты у нас жава кодер.

В таком случае джун намного грамотнее и умнее тебя, тебе не стыдно так себе же в ногу стрелять?

опять же, можешь почекать boost и nlohmann::json, в моем проекте действительно есть god object'ы, но я от них стараюсь уйти в сторону синглтонов, что можно заметить по первой переходной версии сдк на с++20.

В общем не зная целей проекта и зачем он нужен, ты решил высрать польнейший бред лишь бы зацепить меня, но ты не один такой, мне не в падлу ответить человеку, который в теме 0.
уйти в сторону синглтонов на с++20? :pepka: :pepka: :pepka:
 
смарт поинтеры??
смарт поинтер это к чему? причем тут смарт поинтер? ты знаешь что такое смарт поинтер и для чего он используется? ты понимаешь какую проблему мне нужно решить и что ты мне предлагаешь?
 
смарт поинтер это к чему? причем тут смарт поинтер? ты знаешь что такое смарт поинтер и для чего он используется? ты понимаешь какую проблему мне нужно решить и что ты мне предлагаешь?
чувак, если бы я не знал что такое смарт поинтер я бы наверно не предлагал тебе его использовать?? я конечно не знаю что ты имеешь ввиду под синглитон может у тебя там под этим названием супер пупер крутая feature func а то у синглитона цель получить доступ к указателю объекта но бтв с смарт поинтером ты можешь получить безопасно доступ к указателю / памяти и так же безопасно ею управлять без дрочи с new/delete
 
чувак, если бы я не знал что такое смарт поинтер я бы наверно не предлагал тебе его использовать?? я конечно не знаю что ты имеешь ввиду под синглитон может у тебя там под этим названием супер пупер крутая feature func а то у синглитона цель получить доступ к указателю объекта но бтв с смарт поинтером ты можешь получить безопасно доступ к указателю / памяти и так же безопасно ею управлять без дрочи с new/delete
как new какой delete? я написал про синглтон как инструмент помогающий решить проблему со статическими божественными классами, тем более, что уже больше 14 лет static инициализация является трид сейф, по этому могу тебе подсабить макросом
C++:
Expand Collapse Copy
#define SKEET_DEFINESINGLE(name) \
private: \
    name(const name&) = delete; \
    name& operator=(const name&) = delete; \
    name(); \
public: \
    static name& Get() \
    { \
        static name instance; \
        return instance; \
    };
Вполне возможно я тебя не так понял, но это очень тупо юзать вместо синглтона shared_prt или что то типа того, он в 1 не потокбезопасен, в 2 он может удалить объект класса, что мне делать не нужно.
 
Последнее редактирование:
он в 1 не потокбезопасен, в 2 он может удалить объект класса, что мне делать не нужно.
1. бред наполовину
2. а в чем проблема сделать вот так?
C++:
Expand Collapse Copy
auto ptr = std::shared_ptr< MyClass >( new MyClass( ), [ ]( MyClass* ) {} );
 
1. бред наполовину
что значит бред на половину? буквально дата в умных указателях не является потокобезопасной, он как контейнер не потокбезопасен, там только управляющий блок потокобезопасен со своими counter'ами
2. а в чем проблема сделать вот так?
а нахуя? зачем мне это? и где я буду это инициализировать? я тебе ещё раз говорю, мне нужно что бы была lazy-initalization при непосредственном обращении к классу, ты видимо не понимаешь какую проблему я пытаюсь решить, тут умные указатели это буквально как дать типу ключ от дверного замка, когда он явно попросил накидной.
auto ptr = std::shared_ptr< MyClass >( new MyClass( ), [ ]( MyClass* ) {} );
и вообще что это нахуй за пример, давно уже есть std::make_shared
 
что значит бред на половину? буквально дата в умных указателях не является потокобезопасной, он как контейнер не потокбезопасен, там только управляющий блок потокобезопасен со своими counter'ами

а нахуя? зачем мне это? и где я буду это инициализировать? я тебе ещё раз говорю, мне нужно что бы была lazy-initalization при непосредственном обращении к классу, ты видимо не понимаешь какую проблему я пытаюсь решить, тут умные указатели это буквально как дать типу ключ от дверного замка, когда он явно попросил накидной.

и вообще что это нахуй за пример, давно уже есть std::make_shared
std::call_once заюзай, хз
 
std::call_once заюзай, хз
нахуя объясни? если есть простой и удобный синглтон, который при первом обращении создает объект и закономерно инитает его, это как раз то, что мне нужно, а не гетто хуйня с шаред птр, и ебаным callonce? ты вообще понимаешь, что проблема не в множественном вызове? я в ахуе.. лишь бы поспорить.
 
Назад
Сверху Снизу