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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2010, 15:57   #1
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию OpenGL

Я скачал учебник по OpenGL, ввел из него простенькую программу в MSVC++,запускаю, и компилятор пишет, что он нашёл 143 ошибки! Вообще ничего не понимаю...

Последний раз редактировалось Beermonza; 21.04.2010 в 19:29.
_-Re@l-_ вне форума Ответить с цитированием
Старый 20.04.2010, 22:52   #2
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию

Хм, интересно, а какого ответа вы ждали?? Мне не лень, я могу скопипастить свой рабочий пример, но для него нужно glut и freeimage

Код:
#include <gl/glut.h>
#include <stdio.h>
#include <stdlib.h>
#include <FreeImage.h>
#include <math.h>

#pragma comment(lib,"freeimage.lib")

#define WindowWidth 800
#define WindowHeight 600

void LoadTextureFromFile(const char *FileName, GLuint *tID, GLubyte *textura)
{	
	FREE_IMAGE_FORMAT formato = FreeImage_GetFileType(FileName,0);
	FIBITMAP* imagen = FreeImage_Load(formato, FileName);
	FIBITMAP* temp = imagen;
	imagen = FreeImage_ConvertTo32Bits(imagen);
	FreeImage_Unload(temp);
	int w = FreeImage_GetWidth(imagen);
	int h = FreeImage_GetHeight(imagen);
	textura = new GLubyte[4*w*h];
	char* pixeles = (char*)FreeImage_GetBits(imagen);
	for(int j = 0; j<w*h; j++)
	{
		textura[j*4+0]= pixeles[j*4+2];
		textura[j*4+1]= pixeles[j*4+1];
		textura[j*4+2]= pixeles[j*4+0];
		textura[j*4+3]= pixeles[j*4+3];
	}
	GLuint texturaID;
	glGenTextures(1, &texturaID);
	*tID = texturaID;
	glBindTexture(GL_TEXTURE_2D, texturaID);
	glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA, w, h, 0, GL_RGBA,GL_UNSIGNED_BYTE,(GLvoid*)textura );
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINE);
        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
    FreeImage_Unload(imagen);
}

void Reshape(int w, int h)
{
	glViewport(0, 0, w, h);
	glMatrixMode(GL_PROJECTION);
  	glLoadIdentity();
  	glOrtho(0, w, 0, h, -1, 1);
  	glScalef(1, -1, 1);
  	glTranslatef(0, -h, 0);	
} 

void KeyDown(unsigned char key, int x, int y)
{
	switch (key)
	{
		case 27:
		case 'q':
		case 'Q': exit(0); break;
	}
}


GLuint tID;
GLubyte *tx;

void Display()
{
	glEnable(GL_TEXTURE_2D);
	glClear(GL_COLOR_BUFFER_BIT);
	//glLoadIdentity();
	//glRotatef(0.1,0,0,1);
	glRotatef(5,0,0,1);
	glBegin(GL_TRIANGLE_STRIP);
	
	glBindTexture(GL_TEXTURE_2D, tID );	
		glTexCoord2f(0,0);	glVertex2f(0, 60);
		glTexCoord2f(0,1);	glVertex2f(0, 0);
		glTexCoord2f(1,0);	glVertex2f(60, 60);
		glTexCoord2f(1,1);	glVertex2f(60, 0);

	glEnd();
	glutSwapBuffers();
}

int main(int argc, char **argv)
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
	glutInitWindowSize(WindowWidth,WindowHeight);
	glutCreateWindow("OpenGLSimple4");

	LoadTextureFromFile("Star.bmp",&tID,tx);
	glBindTexture(GL_TEXTURE_2D, tID);
	glDisable(GL_DEPTH_TEST);

        glutKeyboardFunc(KeyDown);
	glutIdleFunc(Display);
	glutDisplayFunc(Display);
	glutReshapeFunc(Reshape);

	glutMainLoop();
	return 0;
}
Загрузчик писал не я, там можно обойтись без копирования, всего то указать в glTexImage2D формат входных данных GL_GBRA.
Kostia вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
opengl alhon Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 10.10.2013 15:02
OpenGL Paul_AG C++ Builder 20 14.09.2009 19:07
OpenGl Freer Помощь студентам 1 25.05.2009 17:57
OpenGL Witaliy Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 01.05.2008 21:05
OpenGL prizrak1390 Свободное общение 2 07.04.2008 13:43