Разработчик
- Статус
- Оффлайн
- Регистрация
- 21 Июн 2025
- Сообщения
- 155
- Реакции
- 61
WorldToScreen реализую с нуля, точнее то, что мне нужно, а именно преобразование 3D-координат игрового мира в 2D-координаты монитора.
Сам W2T работает отлично, как видно на скрине.
Но стоит мне начать рисовать графику, через OpenGL т.к асаулт использует OpenGL. У меня еще на этапе создания окна или инициализации контекста появляется сплошное белое окно на весь экран.
Стили окна: WS_EX_LAYERED | WS_EX_TOPMOST | WS_EX_TRANSPARENT
И при этом вызываю SetLayeredWindowAttributes с LWA_COLORKEY чтобы сделать окно прозрачным, но оно все равно белое при запуске кода, на фулл экран.
Было у кого такое? Буду благодарен если кто поможет пофиксить.
ASM:
movss xmm0, [posX]
mulss xmm0, [view_matrix + 12]
movss xmm1, [posY]
mulss xmm1, [view_matrix + 28]
addss xmm0, xmm1
movss xmm1, [posZ]
mulss xmm1, [view_matrix + 44]
addss xmm0, xmm1
addss xmm0, [view_matrix + 60]
movaps xmm10, xmm0
movss xmm1, [min_w]
comiss xmm10, xmm1
jb .loop_pos
movss xmm0, [posX]
mulss xmm0, [view_matrix + 0]
movss xmm1, [posY]
mulss xmm1, [view_matrix + 16]
addss xmm0, xmm1
movss xmm1, [posZ]
mulss xmm1, [view_matrix + 32]
addss xmm0, xmm1
addss xmm0, [view_matrix + 48]
divss xmm0, xmm10
mulss xmm0, [half_w]
addss xmm0, [half_w]
movss [screenX], xmm0
movss xmm0, [posX]
mulss xmm0, [view_matrix + 4]
movss xmm1, [posY]
mulss xmm1, [view_matrix + 20]
addss xmm0, xmm1
movss xmm1, [posZ]
mulss xmm1, [view_matrix + 36]
addss xmm0, xmm1
addss xmm0, [view_matrix + 52]
divss xmm0, xmm10
mulss xmm0, [half_h]
movss xmm1, [half_h]
subss xmm1, xmm0
movss [screenY], xmm1
Но стоит мне начать рисовать графику, через OpenGL т.к асаулт использует OpenGL. У меня еще на этапе создания окна или инициализации контекста появляется сплошное белое окно на весь экран.
Стили окна: WS_EX_LAYERED | WS_EX_TOPMOST | WS_EX_TRANSPARENT
И при этом вызываю SetLayeredWindowAttributes с LWA_COLORKEY чтобы сделать окно прозрачным, но оно все равно белое при запуске кода, на фулл экран.
Было у кого такое? Буду благодарен если кто поможет пофиксить.