Pastafarianist

OpenGL Textures

Jul 29th, 2012
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.54 KB | None | 0 0
  1. // Регистрация текстуры
  2. function prepareTexture: GLuint;
  3.     var texture_data: array [0..res_y - 1, 0..res_x - 1, 0..2] of byte;
  4.             texture_id: GLuint;
  5.             x, y: integer;
  6.             color: TColor;
  7. begin
  8.     // Здесь каким-то образом заполняется массив texture_data
  9.     glEnable(GL_TEXTURE_2D); // включить обработку текстур
  10.   glGenTextures(1, @texture_id); // записать в texture_id число, идентефицирующее новую текстуру
  11.   glBindTexture(GL_TEXTURE_2D, texture_id); // сделать текстуру с номером texture_id текущей
  12.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); // настройка интерполяции
  13.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  14.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // настройка замощения
  15.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
  16.   glTexImage2D(GL_TEXTURE_2D, 0, 3, res_x, res_y, 0, GL_RGB, GL_UNSIGNED_BYTE, @texture_data);
  17.   // загрузить текстуру в память видеокарты, параметры можно воспринимать как иероглифы
  18. end;
  19.  
  20. // Рисование сферы, на которую можно наложить текстуру
  21. procedure drawSphere;
  22.   var sphere: PGLUquadricObj;
  23. begin
  24.   sphere := gluNewQuadric();
  25.   gluQuadricTexture(sphere, GL_TRUE);
  26.     gluSphere(sphere, 1.0, 20, 20);
  27.   gluDeleteQuadric(sphere);
  28. end;
Add Comment
Please, Sign In to add comment