Как рисовать на форме?((-:, трехмерные игры!(-: |
Как рисовать на форме?((-:, трехмерные игры!(-: |
BlackNightFear |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 48 Пол: Мужской Репутация: 0 |
Хочу взяться за игрушку... но хочется чего-то быстрого и скорее всего трехмерного. Выводит через канву на TImage компонент по-моему не выход... тормозить скорее всего будет... так как же тогда??
|
BlackNightFear |
Сообщение
#2
|
Новичок Группа: Пользователи Сообщений: 48 Пол: Мужской Репутация: 0 |
Че никто не знает? :D
а можно ли OpenGL на форму встроить? было бы очень кстати.... |
volvo |
Сообщение
#3
|
Гость |
BlackNightFear
Дело не в том, что никто не знает... Сложно это объяснить... Скачай отсюда ФАК по Дельфи. Там было про использование OpenGL |
BlackNightFear |
Сообщение
#4
|
Новичок Группа: Пользователи Сообщений: 48 Пол: Мужской Репутация: 0 |
там чето ОЧЕНЬ мало что с ОГЛ.... кстати, ну мне и не надо всю ОГЛ объяснять мне только как через ОГЛ обратится к Image, а далее я уж сам!
|
Бродяжник |
Сообщение
#5
|
Бывалый Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: 3 |
Если речь идет о Дельфи, то в книжке Краснова по ОГЛ+Дельфи написано, что выводить на комопонент типа TImage нежелательно, потому что этот компонент не имеет собственного окна (в отличие от TForm, TPanel или даже TButton). И мне это и правда не удалось. А вот рабочий пример по выводу на TPanel могу кинуть (из все той же книжки Краснова).
|
BlackNightFear |
Сообщение
#6
|
Новичок Группа: Пользователи Сообщений: 48 Пол: Мужской Репутация: 0 |
Бродяжник
если не затруднит кинь сюда: blacknightfear@mail.ru |
BlackNightFear |
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 48 Пол: Мужской Репутация: 0 |
кстати, не подскажешь, где закачать такую книжку?
|
BlackNightFear |
Сообщение
#8
|
Новичок Группа: Пользователи Сообщений: 48 Пол: Мужской Репутация: 0 |
Бродяжник
кстати, а вот ты тут говоришь про рисование на Панельке... ты имеешь ввиду с помощью канвы? ведь у панельки нет, на сколько мне известно, канвы.... Кто кого не допонял?((-: |
GoodWind |
Сообщение
#9
|
Автооответчик Группа: Пользователи Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: 16 |
Цитата ведь у панельки нет, на сколько мне известно, канвы.... млин...... дельфи не стоЯт... а то бы точно сказал... по моему есть ^^^^^^^^^^^^^^^^^^ ой, лол получился -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
volvo |
Сообщение
#10
|
Гость |
BlackNightFear
GoodWind Читаем DRKB: Цитата Как рисовать на компоненте, если свойство Canvas недоступно? У всех компонентов, порожденных от TCustomControl, имеется свойство Canvas типа TCanvas. Если свойство Canvas недоступно, Вы можете достучаться до него созданием потомка и переносом этого свойства в раздел Public. Код Type TcPanel = Class(TPanel) Public Property Canvas; End; |
GoodWind |
Сообщение
#11
|
Автооответчик Группа: Пользователи Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: 16 |
ну вот, пришел volvo и все разьяснил
-------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
Бродяжник |
Сообщение
#12
|
Бывалый Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: 3 |
Это не я имел в виду, а г-н Краснов.
Цитата Вывод на компоненты Delphi средствами OpenGL Теоретически с помощью функций OpenGL можно осуществлять вывод не только на поверхность формы, но и на поверхность любого компонента, если у него имеется свойство Canvas. Handle, для чего при получении ссылки на контекст воспроизведения необходимо указывать ссылку на контекст устройства, ассоциированную с нужным компонентом, например, image1. Canvas. Handle. Однако чаще всего это приводит к неустойчивой работе, вывод то есть, то нет, хотя контекст воспроизведения присутствует и не теряется. OpenGL прекрасно уживается с визуальными компонентами, так что чаще всего нет необходимости осуществлять вывод на поле не формы, а компонента Delphi. Вывод можно осуществить и на поверхность панели - компонента, вообще не имеющего свойства canvas. Для этого мы пользуемся тем, что панель имеет отдельное окно: dc: = GetDC (Panell. Handle); SetDCPixelFormat(dc); hrc: = wglCreateContext(dc); Аналогичным образом можно организовать вывод на поверхность любого компонента, имеющего свойство Handle (т. e. имеющего самостоятельное окно), например, на поверхность обычной кнопки. Для вывода на компонент класса TImage можете записать. dc: = Imagel. Canvas. Handle; и удалить строки BeginPaint и EndPaint, поскольку класс TImage не имеет свойства Handle, т. e. не создает отдельного окна. Однако вывод на компоненты, подобные компонентам класса Timage, т. e. не имеющие свойства Handle, отличается полной неустойчивостью И вот мне самому удалось рисовать на панельке, а на Image - нет. Сообщение отредактировано: Бродяжник - |
Текстовая версия | 4.05.2024 14:41 |