Гайд ImGui: Images, textures, рендер для новичков

I Want to Die in New Orleans
Участник
Статус
Оффлайн
Регистрация
10 Окт 2020
Сообщения
514
Реакции[?]
495
Поинты[?]
84K
Всем привет, решил немного рассказать про подгрузку текстур, так как многие новички просто не понимают что они делают, как они это делают, и откуда вообще появляются ошибки в рендере от картинок. Я видел парочку гайдов все они показывают либо очень сжато, либо вообще в 90% показывают новичкам ошибочный код, который сработает сейчас, но потянет за собой вагон проблем в будущем, и как по мне, всё как-то непонятно для самых сырых новичков которые захотели посмотреть что вообще из себя представляет ImGui. В этом гайде я покажу сам рендер со стороны различных DirectX-а, без какой-то лишней запары, покажу частые ошибки при инициализации, и разберёмся с самим выводом картинки в меню.
RU:
Перед началом работы, нам необходимо загрузить себе на пк SDK от DirectX, что вы сможете сделать по данной ссылке
Пожалуйста, авторизуйтесь для просмотра ссылки.
Качаем, устанавливаем НЕ изменяя путь установки (во избежание дальнейших ошибок), ждём.

Открываем ту папку куда вы установили SDK 1670104767162.png -> переходим в папку Include, щелкаем ПКМ на любой из файлов, открываем свойства и копируем его путь от начала до конца (без имени файла).
Как должно быть - "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include", как НЕ должно быть:

1 - "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include\d3d9types.h (или любое другое название файла)"
2 - "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)"

Далее необходимо открыть свойства проекта, и перейти по дальнейшему пути "Свойства->Каталоги VC++->Включаемые каталоги (2 строчка, у меня на англ просто)" - вставляем в начало строки тот путь Include что мы скопировали выше, свойства проекта пока что не закрывайте, читайте далее.

Так же нам необходимо подгрузить библиотеки, делаем то же самое что и с Include, открываем папку где установлен наш SDK и переходим в папку под названием Lib, инструкции те же что и раньше, но с другим путём.

Скопированный путь с папки "Lib" нам необходимо вставить в "Свойства->Каталоги VC++->Каталоги включаемых библиотек".

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

Сделал? Пошли дальше.

EU:
Before starting our work, we need to download the SDK from DirectX to our PC, which you can do using this link
Пожалуйста, авторизуйтесь для просмотра ссылки.

Download, install WITHOUT changing the installation path (to avoid further errors), wait.

Open the folder where you installed the SDK -> 1670104767162.png go to the Include folder, click on any of the files, open the properties and copy its path from beginning to end (without the file name).
How it should be- "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include", as it should NOT be:

1 - "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include\d3d9types.h (or any other file name)"
2 - "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)"

Next, you need to open the project properties, and go to the further path "Properties-> VC++ Directories->Include Directories" - insert at the beginning of the line the Include path that we copied above, do not close the project properties yet, read on.

We also need to load the libraries, do the same as with Include, open the folder where our SDK is installed and go to the folder called Lib, the instructions are the same as before, but with a different path.

We need to paste the copied path from the "Lib" folder into "Properties->VC++ Directories->Directories of included libraries".

After downloading, we need to register all the necessary includs in our project, this will be shown in the example of each DirectX below.
Let's move on.
RU:
Первым делом что-бы не ебаться с сайтами типо tomeko, давайте скачаем генератор файлов в байты.
Пожалуйста, авторизуйтесь для просмотра ссылки.

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

Создаём папку, в неё переносим исполняемый файл генератора байтов, и туда же закидываем любую картинку для старта, далее перетаскиваем картинку прямо на генератор байтов, ждём самостоятельного закрытия консоли от программы.
Открываем файл .h и переносим его к себе в проект.

P.S. данное действие работает не только с картинками, шрифты тоже можно генерировать подобным образом.
А теперь давайте перейдём к самим примерам рендера.

EU:
First of all, in order not to fuck with sites like tomeko, let's download a file generator in bytes.
Пожалуйста, авторизуйтесь для просмотра ссылки.

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

Create a folder, transfer the executable file of the byte generator to it, and throw any picture there to start, then drag the picture directly to the byte generator, wait for the console to close independently from the program.
Open the file .h and transfer it to our project

P.S. this action works not only with pictures, fonts can also be generated in a similar way
And now let's move on to the render examples themselves.

includes:
#include "image.h"
#include <d3d11.h>
#include <D3DX11.h>
#pragma comment (lib, "d3dx11.lib")
DirectX 11:
ID3D11ShaderResourceView* Logotype = nullptr;

void LoadImages()
{
    D3DX11_IMAGE_LOAD_INFO iInfo;
    ID3DX11ThreadPump* threadPump{ nullptr };
    // From Bytes
    D3DX11CreateShaderResourceViewFromMemory(g_pd3dDevice, Logo/[I]from image.h[/I]/, sizeof(Logo/[I]from image.h[/I]/), &iInfo, threadPump, &Logotype/[I]shader[/I]/, 0);
    //

    // From file
    D3DX11CreateShaderResourceViewFromFile(g_pd3dDevice, "D:\\GameLoaderDesign\\Images\\Witcher\\Witcher3Background.png" /[I]your path[/I]/, &iInfo, threadPump, &Logotype2, 0);
    //
}
Инициализируйте LoadImages() под кодом CreateDeviceD3D в main функции.
Initialize LoadImages() under the CreateDeviceD3D in the main function.

Inside ImGui::Begin() | Внутри ImGui::Begin()
ImGui Render:
ImVec2 pos = ImGui::GetWindowPos();
ImDrawList* draw = ImGui::GetWindowDrawList();
draw->AddImageRounded(Logotype, ImVec2(pos.x + 160 /[I]position X[/I]/, pos.y + 120 /[I]position Y[/I]/),
          ImVec2(pos.x + 480 /[I]size X[/I]/ + 160 /[I]position X[/I]/, pos.y + 320 /[I]size Y[/I]/ + 120 /[I]position Y[/I]/),
          ImVec2(0, 0), ImVec2(1, 1), ImColor(255, 255, 255, 255) /[I]color[/I]/, 10 /[I]rounding[/I]/);

Result:
Пожалуйста, авторизуйтесь для просмотра ссылки.
includes:
#include <d3d9.h>
#include <d3dx9.h>
#include "image.h"
#pragma comment (lib, "d3dx9.lib")
DirectX 9:
IDirect3DTexture9* Logotype = nullptr;
PDIRECT3DTEXTURE9 Logotype2 = nullptr;
void LoadImages() {
    // From memory (bytes)
    D3DXCreateTextureFromFileInMemory(g_pd3dDevice, &Logo, sizeof(Logo), &Logotype);
    // From file
    D3DXCreateTextureFromFileA(g_pd3dDevice, "D:\\GameLoaderDesign\\Images\\Witcher\\Witcher3Background.png", &Logotype2);
}
Инициализируйте LoadImages() под кодом CreateDeviceD3D в main функции.
Initialize LoadImages() under the CreateDeviceD3D in the main function.

Inside ImGui::Begin() | Внутри ImGui::Begin()
ImGui Render:
ImVec2 pos = ImGui::GetWindowPos();
ImDrawList* draw = ImGui::GetWindowDrawList();
draw->AddImageRounded(Logotype, ImVec2(pos.x + 160 /[I]position X[/I]/, pos.y + 120 /[I]position Y[/I]/),
          ImVec2(pos.x + 480 /[I]size X[/I]/ + 160 /[I]position X[/I]/, pos.y + 320 /[I]size Y[/I]/ + 120 /[I]position Y[/I]/),
          ImVec2(0, 0), ImVec2(1, 1), ImColor(255, 255, 255, 255) /[I]color[/I]/, 10 /[I]rounding[/I]/);
Result:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Left - DirectX9
Right - DirectX11
Пожалуйста, авторизуйтесь для просмотра ссылки.

RU:
Как мы можем увидеть на скрине выше (или не можем, если не видите, то я напишу вам так), рендер текстуры через DirectX11 показывает себя намного лучше со стороны качества, нет такой заметной размытости как на картинке от DirectX9, в общем картинка от DirectX11 выглядит как от исходника, в то время как DirectX9 заметно её размывает.

EU:
As we can see in the screenshot above (or we can't, if you don't see it, then I'll write to you like this), the texture rendering via DirectX11 shows itself much better from the quality side, there is no such noticeable blurring as in the picture from DirectX9, in general, the picture from DirectX11 looks like from the source, while DirectX9 blurs it noticeably.
RU:
Недавно выполнял работу, и перенося исходник другого человека в сурс заказчика по его просьбе (оба исходника мне предоставили), заказчик столкнулся с подобной ошибкой и задавал мне вопрос -
Пожалуйста, авторизуйтесь для просмотра ссылки.
, моя работа заключалась только в правильном переносе, а не фиксе ошибок рендера исходника, т.к. это мы не обсуждали. Так у меня ещё и осталось такое ощущение, что я получил упрёк, как будто это моя ошибка, ошибка того кто переносил с одного сурса на другой, а не ошибка того человека что постил подобный исходник.

Очень и очень часто замечаю у людей в исходниках, гайдах и т.д. ошибку, использование в десктопных дизайнах, лоадерах Extended функций DirectX рендера, вы можете спросить: "В чём проблема, какая может быть разница между D3DXCreateTextureFromFileInMemory и D3DXCreateTextureFromFileInMemoryEx, они же одинаковы по результату, что за доёб".

Ответ: Нет, в данном случае использование Extended функции для рендера на десктопном приложении строго не советуется и не приветствуется, существует тысяча и одно условие, при котором рендер Extended картинки просто крашнет вам весь рендер на моменте ResetDevice-а, например. Самые известные действия которые вызывают краш - сворачивание приложения (да, просто свернуть - вас крашнет), и смена разрешения рабочего стола.

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

UPD: недавно проводил небольшое сравнение для себя, и обнаружил что Extended функция (конкретно DirectX9) имеет качество рендера заметно выше чем простая функция создания текстуры, то есть текстура на выходе получается почти что как у исходника, в то время как простой рендер текстуры, её немного размывает.

EU:
Recently I was doing work, and transferring the source code of another person to the customer's source at his request (both sources were provided to me), the customer encountered a similar error and asked me a question -
Пожалуйста, авторизуйтесь для просмотра ссылки.
, my job was only to transfer correctly, and not fix the source rendering errors, because we did not discuss this. So I still have the feeling that I received a reproach, as if it was my mistake, the mistake of the one who transferred from one source to another, and not the mistake of the person who posted such a source.

Very, very often I notice an error in people's sources, guides, etc., the use of DirectX Extended rendering functions in desktop designs, loaders, you can ask: "What is the problem, what can be the difference between D3DXCreateTextureFromFileInMemory and D3DXCreateTextureFromFileInMemoryEx, they are the same in result, what the fuck are you talking about."

Answer: No, in this case, the use of the Extended function for rendering on a desktop application is strictly not advised and is not welcome, there are a thousand and one conditions under which the Extended image render will simply crash the entire render at the moment of ResetDevice, for example. The most famous actions that cause a crash are minimizing the application (yes, just collapse - you will crash), and changing the desktop resolution.

Therefore, I sincerely recommend using the normal rendering of images that I provided above, in order to avoid further errors.


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

А моё сообщение к гайдерам, которые не знают о чем они говорят таково - Не пишите гайды вообще, если вы не понимаете о чем вы говорите и предоставляете людям неправильный, ошибочный материал, неспособный для дальнейшего освоения.​
 
Последнее редактирование:
кто читает тот умрет
Участник
Статус
Оффлайн
Регистрация
29 Июл 2019
Сообщения
696
Реакции[?]
540
Поинты[?]
153K
" вообще в 90% показывают новичкам ошибочный код "
Мужик ты крейзи? Это 2 строчки кода в лучшем случае, что там могут не правильного показывать ?
 
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,000
Реакции[?]
86
Поинты[?]
23K
Всем привет, решил немного рассказать про подгрузку текстур, так как многие новички просто не понимают что они делают, как они это делают, и откуда вообще появляются ошибки в рендере от картинок. Я видел парочку гайдов все они показывают либо очень сжато, либо вообще в 90% показывают новичкам ошибочный код, который сработает сейчас, но потянет за собой вагон проблем в будущем, и как по мне, всё как-то непонятно для самых сырых новичков которые захотели посмотреть что вообще из себя представляет ImGui. В этом гайде я покажу сам рендер со стороны различных DirectX-а, без какой-то лишней запары, покажу частые ошибки при инициализации, и разберёмся с самим выводом картинки в меню.
RU:
Перед началом работы, нам необходимо загрузить себе на пк SDK от DirectX, что вы сможете сделать по данной ссылке
Пожалуйста, авторизуйтесь для просмотра ссылки.
Качаем, устанавливаем НЕ изменяя путь установки (во избежание дальнейших ошибок), ждём.

Открываем ту папку куда вы установили SDK Посмотреть вложение 230415 -> переходим в папку Include, щелкаем ПКМ на любой из файлов, открываем свойства и копируем его путь от начала до конца (без имени файла).
Как должно быть - "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include", как НЕ должно быть:

1 - "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include\d3d9types.h (или любое другое название файла)"
2 - "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)"

Далее необходимо открыть свойства проекта, и перейти по дальнейшему пути "Свойства->Каталоги VC++->Включаемые каталоги (2 строчка, у меня на англ просто)" - вставляем в начало строки тот путь Include что мы скопировали выше, свойства проекта пока что не закрывайте, читайте далее.

Так же нам необходимо подгрузить библиотеки, делаем то же самое что и с Include, открываем папку где установлен наш SDK и переходим в папку под названием Lib, инструкции те же что и раньше, но с другим путём.

Скопированный путь с папки "Lib" нам необходимо вставить в "Свойства->Каталоги VC++->Каталоги включаемых библиотек".

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

Сделал? Пошли дальше.

EU:
Before starting our work, we need to download the SDK from DirectX to our PC, which you can do using this link
Пожалуйста, авторизуйтесь для просмотра ссылки.

Download, install WITHOUT changing the installation path (to avoid further errors), wait.

Open the folder where you installed the SDK -> Посмотреть вложение 230415 go to the Include folder, click on any of the files, open the properties and copy its path from beginning to end (without the file name).
How it should be- "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include", as it should NOT be:

1 - "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include\d3d9types.h (or any other file name)"
2 - "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)"

Next, you need to open the project properties, and go to the further path "Properties-> VC++ Directories->Include Directories" - insert at the beginning of the line the Include path that we copied above, do not close the project properties yet, read on.

We also need to load the libraries, do the same as with Include, open the folder where our SDK is installed and go to the folder called Lib, the instructions are the same as before, but with a different path.

We need to paste the copied path from the "Lib" folder into "Properties->VC++ Directories->Directories of included libraries".

After downloading, we need to register all the necessary includs in our project, this will be shown in the example of each DirectX below.
Let's move on.
RU:
Первым делом что-бы не ебаться с сайтами типо tomeko, давайте скачаем генератор файлов в байты.
Пожалуйста, авторизуйтесь для просмотра ссылки.

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

Создаём папку, в неё переносим исполняемый файл генератора байтов, и туда же закидываем любую картинку для старта, далее перетаскиваем картинку прямо на генератор байтов:
Посмотреть вложение 230421, ждём самостоятельного закрытия консоли от программы.
Итог: Посмотреть вложение 230422
Открываем файл .h и переносим его к себе в проект.

P.S. данное действие работает не только с картинками, шрифты тоже можно генерировать подобным образом.
А теперь давайте перейдём к самим примерам рендера.

EU:
First of all, in order not to fuck with sites like tomeko, let's download a file generator in bytes.
Пожалуйста, авторизуйтесь для просмотра ссылки.

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

Create a folder, transfer the executable file of the byte generator to it, and throw any picture there to start, then drag the picture directly to the byte generator:
Посмотреть вложение 230421, waiting for the console to close independently from the program.
Result: Посмотреть вложение 230422
Open the file .h and transfer it to our project

P.S. this action works not only with pictures, fonts can also be generated in a similar way
And now let's move on to the render examples themselves.

includes:
#include "image.h"
#include <d3d11.h>
#include <D3DX11.h>
#pragma comment (lib, "d3dx11.lib")
DirectX 11:
ID3D11ShaderResourceView* Logotype = nullptr;

void LoadImages()
{
    D3DX11_IMAGE_LOAD_INFO iInfo;
    ID3DX11ThreadPump* threadPump{ nullptr };
    // From Bytes
    D3DX11CreateShaderResourceViewFromMemory(g_pd3dDevice, Logo/*from image.h*/, sizeof(Logo/*from image.h*/), &iInfo, threadPump, &Logotype/*shader*/, 0);
    //

    // From file
    D3DX11CreateShaderResourceViewFromFile(g_pd3dDevice, "D:\\GameLoaderDesign\\Images\\Witcher\\Witcher3Background.png" /*your path*/, &iInfo, threadPump, &Logotype2, 0);
    //
}
Инициализируйте LoadImages() под кодом CreateDeviceD3D в main функции.
Initialize LoadImages() under the CreateDeviceD3D in the main function.

Inside ImGui::Begin() | Внутри ImGui::Begin()
ImGui Render:
ImVec2 pos = ImGui::GetWindowPos();
ImDrawList* draw = ImGui::GetWindowDrawList();
draw->AddImageRounded(Logotype, ImVec2(pos.x + 160 /*position X*/, pos.y + 120 /*position Y*/),
          ImVec2(pos.x + 480 /*size X*/ + 160 /*position X*/, pos.y + 320 /*size Y*/ + 120 /*position Y*/),
          ImVec2(0, 0), ImVec2(1, 1), ImColor(255, 255, 255, 255) /*color*/, 10 /*rounding*/);

Result:
Пожалуйста, авторизуйтесь для просмотра ссылки.
includes:
#include <d3d9.h>
#include <d3dx9.h>
#include "image.h"
#pragma comment (lib, "d3dx9.lib")
DirectX 9:
IDirect3DTexture9* Logotype = nullptr;
PDIRECT3DTEXTURE9 Logotype2 = nullptr;
void LoadImages() {
    // From memory (bytes)
    D3DXCreateTextureFromFileInMemory(g_pd3dDevice, &Logo, sizeof(Logo), &Logotype);
    // From file
    D3DXCreateTextureFromFileA(g_pd3dDevice, "D:\\GameLoaderDesign\\Images\\Witcher\\Witcher3Background.png", &Logotype2);
}
Инициализируйте LoadImages() под кодом CreateDeviceD3D в main функции.
Initialize LoadImages() under the CreateDeviceD3D in the main function.

Inside ImGui::Begin() | Внутри ImGui::Begin()
ImGui Render:
ImVec2 pos = ImGui::GetWindowPos();
ImDrawList* draw = ImGui::GetWindowDrawList();
draw->AddImageRounded(Logotype, ImVec2(pos.x + 160 /*position X*/, pos.y + 120 /*position Y*/),
          ImVec2(pos.x + 480 /*size X*/ + 160 /*position X*/, pos.y + 320 /*size Y*/ + 120 /*position Y*/),
          ImVec2(0, 0), ImVec2(1, 1), ImColor(255, 255, 255, 255) /*color*/, 10 /*rounding*/);
Result:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Left - DirectX9
Right - DirectX11
Пожалуйста, авторизуйтесь для просмотра ссылки.

RU:
Как мы можем увидеть на скрине выше (или не можем, если не видите, то я напишу вам так), рендер текстуры через DirectX11 показывает себя намного лучше со стороны качества, нет такой заметной размытости как на картинке от DirectX9, в общем картинка от DirectX11 выглядит как от исходника, в то время как DirectX9 заметно её размывает.

EU:
As we can see in the screenshot above (or we can't, if you don't see it, then I'll write to you like this), the texture rendering via DirectX11 shows itself much better from the quality side, there is no such noticeable blurring as in the picture from DirectX9, in general, the picture from DirectX11 looks like from the source, while DirectX9 blurs it noticeably.
RU:
Недавно выполнял работу, и перенося исходник другого человека в сурс заказчика по его просьбе (оба исходника мне предоставили), заказчик столкнулся с подобной ошибкой и задавал мне вопрос -
Пожалуйста, авторизуйтесь для просмотра ссылки.
, моя работа заключалась только в правильном переносе, а не фиксе ошибок рендера исходника, т.к. это мы не обсуждали. Так у меня ещё и осталось такое ощущение, что я получил упрёк, как будто это моя ошибка, ошибка того кто переносил с одного сурса на другой, а не ошибка того человека что постил подобный исходник.

Очень и очень часто замечаю у людей в исходниках, гайдах и т.д. ошибку, использование в десктопных дизайнах, лоадерах Extended функций DirectX рендера, вы можете спросить: "В чём проблема, какая может быть разница между D3DXCreateTextureFromFileInMemory и D3DXCreateTextureFromFileInMemoryEx, они же одинаковы по результату, что за доёб".

Ответ: Нет, в данном случае использование Extended функции для рендера на десктопном приложении строго не советуется и не приветствуется, существует тысяча и одно условие, при котором рендер Extended картинки просто крашнет вам весь рендер на моменте ResetDevice-а, например. Самые известные действия которые вызывают краш - сворачивание приложения (да, просто свернуть - вас крашнет), и смена разрешения рабочего стола.

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

EU:
Recently I was doing work, and transferring the source code of another person to the customer's source at his request (both sources were provided to me), the customer encountered a similar error and asked me a question -
Пожалуйста, авторизуйтесь для просмотра ссылки.
, my job was only to transfer correctly, and not fix the source rendering errors, because we did not discuss this. So I still have the feeling that I received a reproach, as if it was my mistake, the mistake of the one who transferred from one source to another, and not the mistake of the person who posted such a source.

Very, very often I notice an error in people's sources, guides, etc., the use of DirectX Extended rendering functions in desktop designs, loaders, you can ask: "What is the problem, what can be the difference between D3DXCreateTextureFromFileInMemory and D3DXCreateTextureFromFileInMemoryEx, they are the same in result, what the fuck are you talking about."

Answer: No, in this case, the use of the Extended function for rendering on a desktop application is strictly not advised and is not welcome, there are a thousand and one conditions under which the Extended image render will simply crash the entire render at the moment of ResetDevice, for example. The most famous actions that cause a crash are minimizing the application (yes, just collapse - you will crash), and changing the desktop resolution.

Therefore, I sincerely recommend using the normal rendering of images that I provided above, in order to avoid further errors.


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

А моё сообщение к гайдерам, которые не знают о чем они говорят таково - Не пишите гайды вообще, если вы не понимаете о чем вы говорите и предоставляете людям неправильный, ошибочный материал, неспособный для дальнейшего освоения.​
g_pd3dDevice. Где вы берете этот ебучий девайс?
 
Забаненный
Статус
Оффлайн
Регистрация
2 Мар 2021
Сообщения
1,083
Реакции[?]
406
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
g_pd3dDevice. Где вы берете этот ебучий девайс?
он есть в любом случае, у тебя он просто не так называется, хоть это сумей сам найти, не создавай по поводу этого тему
 
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,000
Реакции[?]
86
Поинты[?]
23K
он есть в любом случае, у тебя он просто не так называется, хоть это сумей сам найти, не создавай по поводу этого тему
Где его найти? Я весь сурс перекопал
 
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,000
Реакции[?]
86
Поинты[?]
23K
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
30 Авг 2020
Сообщения
660
Реакции[?]
396
Поинты[?]
16K
он есть в любом случае, у тебя он просто не так называется, хоть это сумей сам найти, не создавай по поводу этого тему
А я dx9 не хукал, откуда он может быть в любом случае?
 
Забаненный
Статус
Оффлайн
Регистрация
2 Мар 2021
Сообщения
1,083
Реакции[?]
406
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Пользователь
Статус
Оффлайн
Регистрация
13 Янв 2018
Сообщения
193
Реакции[?]
75
Поинты[?]
10K
g_pd3dDevice. Где вы берете этот ебучий девайс?
нажал

Посмотреть вложение 230538 Я то девайс давно нашел, но оно все равно пишет, что не определен
Все пофиксил, нихуя оно не рендерит
ImGui::Image(&Logotype, { 70, 70 });
Я же могу так вызвать?
Сделайте вы уже лично для него гайд, ну правда не смешно уже, четвёртый день человек пытается картинку отрисовать.
 
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,000
Реакции[?]
86
Поинты[?]
23K
Сделайте вы уже лично для него гайд, ну правда не смешно уже, четвёртый день человек пытается картинку отрисовать.
Да прикол в том, что я все сделал как в инструкции, все равно крашит, но ток они этого не признают
 
Пользователь
Статус
Оффлайн
Регистрация
13 Янв 2018
Сообщения
193
Реакции[?]
75
Поинты[?]
10K
Да прикол в том, что я все сделал как в инструкции, все равно крашит, но ток они этого не признают
Заведомо неправильные гайды пишут, а потом сидят и рофлят с балбесов которые ведутся на эту хуйню.
В следующий раз поаккуратнее будь с гайдами, проси пруф что код компилится и нормально работает.
 
I Want to Die in New Orleans
Участник
Статус
Оффлайн
Регистрация
10 Окт 2020
Сообщения
514
Реакции[?]
495
Поинты[?]
84K
Пожалуйста, авторизуйтесь для просмотра ссылки.
а нахуя ты пытаешься разименовывать текстурку
ImGui::Image(&Logotype, { 70, 70 });
:roflanPominki:
ImGui::Image(Logotype, { 70, 70 });
в гайде я нигде не указывал что нужно ставить знак & (если для тебя так будет проще, назовём это просто знаком).
 
Начинающий
Статус
Оффлайн
Регистрация
9 Дек 2018
Сообщения
50
Реакции[?]
9
Поинты[?]
3K
Заведомо неправильные гайды пишут, а потом сидят и рофлят с балбесов которые ведутся на эту хуйню.
В следующий раз поаккуратнее будь с гайдами, проси пруф что код компилится и нормально работает.
пруф на компилится АВЫХВАЫХВАХВАХХВА ты ебанутый или да?
 
Пользователь
Статус
Оффлайн
Регистрация
13 Янв 2018
Сообщения
193
Реакции[?]
75
Поинты[?]
10K
пруф на компилится АВЫХВАЫХВАХВАХХВА ты ебанутый или да?
Ты прежде чем пиздеть, сам попробуй скомпилить, умник блять нашёлся.
Вот даже стрелочками для особо одарённых вроде тебя нарисовал.
Новый проект (2).png
 
На самом деле я Zodiak
Участник
Статус
Оффлайн
Регистрация
22 Дек 2020
Сообщения
1,023
Реакции[?]
183
Поинты[?]
70K
Начинающий
Статус
Оффлайн
Регистрация
9 Дек 2018
Сообщения
50
Реакции[?]
9
Поинты[?]
3K
Сверху Снизу