Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2011, 18:25   #1
fmonkey3105
Пользователь
 
Аватар для fmonkey3105
 
Регистрация: 09.06.2011
Сообщений: 17
По умолчанию Не могу вывести часть изображения. OpenGL

Код:
procedure glDrawImageLib(A,B,X,Y: Integer; ID: Integer);
var
  PosX, PosY: Real;
begin
  glEnable(GL_TEXTURE_2D);
  glEnable(GL_BLEND);

  PosX := (ID mod 4) * 0.25;
  PosY := (ID div 4) * 0.125;

  glBegin(GL_QUADS);
  glTexCoord2f(PosX, PosY+0.125);
  glVertex2f(A,B);
  glTexCoord2f(PosX + 0.25, PosY + 0.125);
  glVertex2f(A+X,B);
  glTexCoord2f(PosX + 0.25, PosY);
  glVertex2f(A+X,B+Y);
  glTexCoord2f(PosX, PosY);
  glVertex2f(A,B+Y);
  glEnd;

  glDisable(GL_TEXTURE_2D);
  glDisable(GL_BLEND);
end;
glBindTexture у меня прописано до вызова процедуры.
У меня есть изображение 128 на 256, нужно вывести часть изображения 32 на 32. Не понимаю, почему не работает процедура. Помогите пожалуйста.

Последний раз редактировалось fmonkey3105; 01.07.2011 в 18:28.
fmonkey3105 вне форума Ответить с цитированием
Старый 02.07.2011, 09:13   #2
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Код:
PosY := (ID div 4) * 0.125;
Там наверно на 8 делить надо...
An1ka вне форума Ответить с цитированием
Старый 02.07.2011, 21:37   #3
fmonkey3105
Пользователь
 
Аватар для fmonkey3105
 
Регистрация: 09.06.2011
Сообщений: 17
По умолчанию

Метод тыка - не мой. Делить на 8 там не надо, наверняка. Почему? Потому что в первом ряду 4 картинки. Соответственно их порядковые номера 0,1,2,3. Начиная с 4 по 7 идет уже второй ряд, так как если мы делим любое из этих чисел целочисленно на 4, то получим 1 (для первого ряда это число 0)

Последний раз редактировалось fmonkey3105; 02.07.2011 в 21:40.
fmonkey3105 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно вывести часть определенной строки Ksy JavaScript, Ajax 1 08.02.2011 01:16
статья - Делаем динамические тени на OPENGL. Часть 1 Pblog Обсуждение статей 0 25.08.2010 20:00
OpenGL. Деформация изображения. BOBAH13 Общие вопросы C/C++ 2 11.11.2009 14:50
Нужно сделать часть изображения прозрачной.. prod87 Мультимедиа в Delphi 2 02.11.2009 00:22
вывести на печать целую часть от деления Alex61 Помощь студентам 1 10.06.2009 11:33