|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.08.2014, 11:54 | #1 |
Новичок
Джуниор
Регистрация: 05.08.2014
Сообщений: 4
|
Загрузка текстуры OpenGL
Здравствуйте! Начал работать с OpenGL на Delphi XE5. Все работает хорошо, однако текстуры не загружаются, если я загружаю их после создания формы, т.е. не в OnCreate. В примере загружаю текстуры img1 при создании формы и img2 при нажатии на кнопку.
Код загрузки текстуры: Код:
P.S.: способов загрузки текстуры перепробовал много, ни один не подходит. DevIL тоже. |
05.08.2014, 11:55 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а где создание контекста?
скорее всего при кнопке у вас не активирован контекст. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
05.08.2014, 11:57 | #3 |
Новичок
Джуниор
Регистрация: 05.08.2014
Сообщений: 4
|
Извиняюсь, что вы имеете ввиду под созданием контекста? Если инициализацию OpenGL, она есть, и отрисовка происходит, однако, если наложить текстуру на, к примеру, квадрат, то он отрисуется как будто бы без текстуры.
|
05.08.2014, 12:56 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
я не вижу этого создания.
у меня такие ошибки были когда я делал вещи вне активного контекста ГЛ. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
05.08.2014, 14:43 | #5 |
Новичок
Джуниор
Регистрация: 05.08.2014
Сообщений: 4
|
Вот функция создания:
Код:
|
06.08.2014, 12:05 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
все верно, в OnCreate у вас еще выбран контекст OpenGL, потому и работает.
а при нажатии на кнопку он не выбран. у вас в прорисовке стоит wglMakeCurrent(0,0) в конце.(поидее должен) вам надо при загрузке текстуры, тоже активировать контекст. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
07.08.2014, 14:21 | #7 |
Новичок
Джуниор
Регистрация: 05.08.2014
Сообщений: 4
|
В конце отрисовки стоял wglMakeCurrent(0,0). Сейчас добавил к этому wglMakeCurrent(DC,context), где DC - GetDC(Panel1.Handle), context - wglCreateContext(DC). Таким образом новый кадр начал отрисовываться сразу после отрисовки старого. Но, все по-старому, текстура не загружается.
Кстати, "незагруженные" текстуры имеют значения, т.е. загружаются. Сейчас значение текстуры равно 101. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Текстуры OPENGL | gufon | Общие вопросы Delphi | 3 | 02.06.2012 12:11 |
OpenGL. Текстуры. | _PROGRAMM_ | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 14 | 01.06.2011 20:32 |
OpenGL и текстуры | N!ckeL | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 7 | 05.05.2010 15:46 |
Текстуры OpenGl | Stanislav | Мультимедиа в Delphi | 7 | 17.12.2008 17:55 |
OpenGL текстуры | NoName_emaNoN | Win Api | 3 | 29.11.2007 20:11 |