Шаман писал(а):
1) Буфер глубины ты ведь не юзаешь? Я его и не задавал. Аналогично с трафаретом. Все те константы, что равны нулю (это значения по-умолчанию), задавать не нужно.
Зря, кстати, не юзаю! Сортировка, как у меня, это по-моему тупо.
Шаман писал(а):
В твоём варианте они не нужны вообще - ты не рисуешь ни точки, ни линии, а края полигонов уплавнять тебе не нужно, раз ты спрайтами рисуешь. Возможно, тормоза у Al-Horesmi как раз из-за этих "супер-фичь".
Векторная отрисовка тоже будет. Но я только хинты прописываю, само сглаживание я нигде не включаю, поэтому тормоза не от этого.
Шаман писал(а):
Поменял местами gluLookAt и glMatrixMode(GL_MODELVIEW), ибо в твоём порядке ЛукАт действует на матрицу перспективы, а не на модельновидовую матрицу, что логически не верно. Очепятка, верно?
Угу.
В принципе, это тоже можно не прописывать, оно походу по дефолту.
Шаман писал(а):
Интересно было бы также взглянуть на код развёртки во весь экран.
Код:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hprev, PSTR cmdline, int ishow)
{
LoadSettings();
//Setting win rect
RECT DesktopRect;
const HWND hDesktop = GetDesktopWindow();
GetWindowRect(hDesktop, &DesktopRect);
WinRect.Init(DesktopRect.right, DesktopRect.bottom);
//Creating win class
WNDCLASS wndclass;
memset(&wndclass, 0, sizeof(WNDCLASS));
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WinProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = "Mech2D win class";
RegisterClass(&wndclass);
//Setting full screen mode
DEVMODE dmSettings;
memset(&dmSettings, 0, sizeof(dmSettings));
dmSettings.dmPelsWidth = WinRect.Width;
dmSettings.dmPelsHeight = WinRect.Height;
ChangeDisplaySettings(&dmSettings, CDS_FULLSCREEN);
ShowCursor(false);
//Creating window
hWnd = CreateWindow("Mech2D win class", "Mech2D",
WS_POPUP | WS_VISIBLE,
0, 0, WinRect.Width, WinRect.Height,
NULL, NULL, hInstance, NULL);
SetFocus(hWnd);
srand((unsigned)time(NULL));
InitGL();
World = new TWorld();
//Starting main loop
return MainLoop();
}