{{notification.text}}

MirGames

DooMer
01.10.12 16:27
0
Привет!
Рисование простых примитивов с помощью GDI, а затем при участии DelphiX стало как-то тормозить и я поставил GlScene. Посмотрел там пример который отрисовывает все на Canvas и там так все быстро, я был впечатлен :)
Начал писать свой код, и вод незадача, многие функции типа FloodFill, TextOut и так далее, запрашивают какойто HDC :ninja: В демо-примере такого ничего нет, а все функции которые не используют HDC какие-то ограниченные: http://book.glscene.ru/index.php?title=%D0...%BD%D0%B2%D0%B5
мне нужно больше :(

Изображение
помогите, что ему нужно указать? :(
Отредактировано: 01.10.12 16:27
#1
MirGames Dev
01.10.12 17:59
0
FloodFill - это функция WinAPI, не имеющая отношение к GLScene. Первым параметром она принимает объект HDC - это контекст отображения или, иначе, дескриптор контекста устройства, который можно получить, вызвав, например, CreateCompatibleDC(0). В этом случае будет создан контекст отображения над окном текущего приложения.

По идее у объекта TForm, как и у всех контролов формы, должно быть свойство Handle, которое и является этим дескриптором.

Что же касается TGLCanvas, то, как я понимаю, это обертка над OpenGL, соответственно использовать функции GDI с ним бессмысленно, и нужно пользоваться тем набором функции, что предоставляет TGLCanvas.

А ещё лучше не мучаться, и просто использовать OpenGL без всяких оберток.
Отредактировано: 01.10.12 18:27
#2
01.10.12 20:56
0
Не, Handle, вроде - это HWND :)
Чтобы взять HDC нужно написать (возможно, псевдо)код:
GetDC(Form1.handle);

А если сделать GetDC(0), то рисовать можно будет прямо на рабочем столе :)
#{{post.Index}}
{{post.Author.Login}}
{{post.CreatedDate | date:'dd.MM.yy HH:mm'}}
{{post.VotesRating}}
Отредактировано: {{post.UpdatedDate | date:'dd.MM.yy HH:mm'}}