elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  información sobre opengl y window.h
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 4 5 Ir Abajo Respuesta Imprimir
Autor Tema: información sobre opengl y window.h  (Leído 14,810 veces)
ahigor

Desconectado Desconectado

Mensajes: 54


Ver Perfil
información sobre opengl y window.h
« en: 24 Julio 2016, 13:46 pm »

buenos días quería información sobre opengl i widows.h porque glut he echo todo y no me va, y aparte no me gusta mucho,si me podrían echar una mano estaría muy agradecido ,y nada decir que estoy entrando en el apasionante mundo de la programación en opengl i estoy muy muy ilusionado y quería hablar sobre ello ,también me gustaría conocer gente con las mismas inquietudes como las mías. Perdón por las faltas de ortografía jajaja estoy tan ilusionado que no tengo ganas ni de poner todas las comas jajjajaajjaja un cordial saludo ahigor.


En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: información sobre opengl y window.h
« Respuesta #1 en: 24 Julio 2016, 18:07 pm »

No tienes porque usar ni GLUT ni la API de windows. También puedes usar GLFW. Te pongo un código de ejemplo para que veas lo simple que es:

Código
  1. #include <stdio.h>
  2.  
  3. #include <glfw\glfw3.h>
  4.  
  5. int main() {
  6.    GLFWwindow *window = NULL; // Con esta variable nos referiremos a la ventana
  7.  
  8.    // Inicializamos la librería GLFW
  9.    if(GL_TRUE != glfwInit()) {
  10.        fprintf(stdout, "Error inicializando GLFW\n");
  11.        return -1;
  12.    }
  13.  
  14.    // Creamos ventana de dimensiones 800x600
  15.    window = glfwCreateWindow(800, 600, "Titulo de ventana", NULL, NULL);
  16.    if(NULL == window) {
  17.        fprintf(stdout, "Error creando ventana de GLFW\n");
  18.        return -1;
  19.    }
  20.  
  21.    // Color de fondo: blanco
  22.    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
  23.  
  24.    // Bucle del juego/programa
  25.    while(GL_FALSE == glfwWindowShouldClose(window)) {
  26.        // Actualizamos eventos (ratón, teclado, maximizar ventana, cerrar ventana...)
  27.        glfwPollEvents();
  28.        // Limpiamos búfer
  29.        glClear(GL_COLOR_BUFFER_BIT);
  30.  
  31.        // Dibujamos triángulo
  32.        glColor3f(1.0f, 0.0f, 0.0f); // Color del triángulo: rojo
  33.        glBegin(GL_TRIANGLES);
  34.        glVertex2f(-1.0f, -1.0f);
  35.        glVertex2f( 1.0f, -1.0f);
  36.        glVertex2f( 0.0f,  1.0f);
  37.        glEnd();
  38.  
  39.        // Actualizamos el búfer de pantalla
  40.        glfwSwapBuffers(window);
  41.    }
  42.  
  43.    // Cerramos programa liberando memoria
  44.    glfwTerminate();
  45.    return 0;
  46. }

El código parece más complicado de lo que es porque tiene bastantes comentarios. Se podría hacer incluso más simple.

A parte de lo simple que es empezar con GLFW, esta API es muy buena, muy extensa y está MUY BIEN documentada, así que si ocurre un error respecto a GLFW, es muy raro que no encuentres solución si lo buscas en Internet.


Yo no tengo experiencia en sistemas Linux, por lo que solo te puedo dar consejos sobre Windows.

Aquí tienes un tutorial de cómo compilar GLFW manualmente:
http://www.glfw.org/docs/latest/compile.html

Una vez que hayas compilado GLFW, lo único que tienes que hacer es añadir las dependencias a tu proyecto.

Si estás usando la consola, y estás usando MinGW, este comando te servirá si has compilado GLFW estáticamente:
Código:
gcc -Wall -o juego.exe main.c -L"directorio_de_libreria" -lglfw3 -lopengl32 -lgdi32

Si has compilado GLFW dinámicamente, entonces el comando sería:

Código:
gcc -Wall -o juego.exe main.c -L"directorio_de_libreria" -lglfw3.dll -lopengl32 -lgdi32

Ten en cuenta que tienes que tener algo de experiencia con esto de las librerías. Sin embargo, si no tienes demasiada, te presento un tutorial:

http://learnopengl.com/#!Getting-started/Creating-a-window

¡Espero haber sido de ayuda!


« Última modificación: 24 Julio 2016, 18:12 pm por class_OpenGL » En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
ahigor

Desconectado Desconectado

Mensajes: 54


Ver Perfil
Re: información sobre opengl y window.h
« Respuesta #2 en: 24 Julio 2016, 18:18 pm »

muchas gracias oye una pregunta ogre3d que opinas para que sirve y si ocupa mucho en el pc es que estoy leyendo una cosa i dicen que es muy bueno me fío de tu opinión pues sabes muchisimo más que yo gracias de antemano
En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: información sobre opengl y window.h
« Respuesta #3 en: 24 Julio 2016, 18:35 pm »

CREO que es un motor gráfico. Por ahora, yo no uso motores gráficos, así que se podría decir que en ese tema sabes prácticamente lo mismo que yo, o incluso más.

Si no sabes lo que es un motor gráfico exactamente, es como un conjunto de herramientas que te permiten crear juegos de forma mucho más sencilla, sin tener que programar tanto. Evidentemente, para los temas más "delicados" habrá que programar, pero la programación con los motores gráficos puede ser muy poca. Por eso desaconsejo empezar con estos desde un principio. Si bien es cierto que te pueden ayudar, EN MI OPINIÓN, creo que es mejor empezar desde los cimientos y aprender a programar tus propias herramientas.
REPITO: es opinión mía, es posible perfectamente que me esté equivocando muchísimo, sobre todo porque puede ser una opinión no general.
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
ahigor

Desconectado Desconectado

Mensajes: 54


Ver Perfil
Re: información sobre opengl y window.h
« Respuesta #4 en: 24 Julio 2016, 18:42 pm »

me fío de ti y la verdad prefiero hacerlo todo a mano me gusta más y paso entonces de ogre3d voy a ponerme con glfw lo tengo bajado pero no me sale en dev c++ esa es otra jajaja si es que tengo muchas preguntas que es mejor code::blocs dev++ o otra que no conozca si es que soy un mar de dudas jajjaja muchas gracias me estas informando muy bien
En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: información sobre opengl y window.h
« Respuesta #5 en: 24 Julio 2016, 19:10 pm »

Si te sirve de algo, yo uso Code::Blocks, y me va muy bien. Mira, te voy a dar los pasos exactos para compilar GLFW usando CMake y Code::Blocks


PROCESO DE COMPILACIÓN DE GLFW  (explicado para CodeBlocks y Windows):
1 - Abre CMake, pincha sobre el botón 'Browse Source' y selecciona la carpeta donde tengas todos los archivos de GLFW (en mi caso, tengo una carpeta en el escritorio llamada glfw, C:\Users\<usuario>\Desktop\glfw)

2 - Pincha sobre el botón  'Browse Build' y seleccionas otra carpeta de salida. En este caso, yo he creado una carpeta en el escritorio llamada glfw_bin. Si te salie que esa carpeta no existe, dale a que si para que automáticamente te cree una.

3 - Pincha sobre 'Configure'. Si te sale un diálogo que te dice que la carpeta de salida no existe, dale a que si para que te la cree automáticamente.

4 - En la lista desplegable, selecciona 'CodeBlocks - MinGW Makefiles', o la opción que más te convenga. Y sobre las opciones de compilador, dale a que use los compiladores nativos ('Use default native compilers')

5 - Dale a 'Finnish'. Tendrás que esperar un rato a que genere el proyecto.

6 - Una vez terminada la espera, asegúrate de que no te haya salido ningún error. En el caso de que haya salido alguno, publícalo en este mismo tema. Si no hay errores, pulsa sobre 'Generate'. De nuevo, al terminar de generarse el proyecto, asegúrate de que no te hayan indicado error.

7 - Ya puedes cerrar CMake. Ahora vente a la carpeta de salida que le indicaste a CMake (en mi caso, era glfw_bin, en el escritorio). En esa carpeta ha de haber un archivo llamado GLFW.cbp. Ábrelo con CodeBlocks.

8 - Ahora vente al menú 'Build', y desde ahí selecciona 'Build'. Tendrás que esperar a que se compile la librería. Te tendría que salir en la parte inferior información sobre la compilación, si no es así, pulsa F2 y se te mostrará. Una vez que haya terminado de compilar, la librería estará lista para su uso. Ahora hay que incluirla en el proyecto.
NOTA: Si te salen errores de 'undefined reference to vk..., no pasa nada. No pasa nada si es undefined reference vk, ten en cuenta el vk!!



INCLUIR LIBRERÍA EN EL PROYECTO (explicado para CodeBlocks y Windows):
1 - Primero vamos a sacar los archivos necesarios de la compilación anterior:
En la carpeta de archivos fuente de GLFW (la carpeta del paso 1), está la carpeta
'include'. Córtala o cópiala (a preferencia tuya) a otra carpeta. Yo la dejé en el escritorio mismo.
En la carpeta donde hemos generado el proyecto (en la carpeta del paso 2 de la compilación), vete a la subcarpeta 'src'. Ahí debe estar el archivo 'libglfw3.a'. Si no lo está, es que no has compilado la librería correctamente. Si está, cópialo al escritorio mismamente.
Yo he creado en el escritorio una carpeta llamada 'lib', y ahí he guardado 'libglfw3.a'.

2 - Una vez tenemos todos los archivos relevantes, podemos eliminar los dos carpetas generadas en el proceso de la compilación (las carpetas que yo llamé 'glfw' y 'glfw_bin'). Una vez eliminadas, creamos un proyecto de consola en CodeBlocks (File -> New -> Project, Console Application ->Go). Este será el proyecto donde puedas usar OpenGL y GLFW. Puedes seleccionar tanto C como C++

3 - Corta los archivos que generamos antes a la carpeta del proyecto

3 - Una vez creado el proyecto, puedes copiar el código que pasé antes a tu archivo main.c/cpp. (Paso opcional pero altamente recomendable)

4 - Ahora vete al menú 'Project' -> 'Build Options'.

5 - Vete a la pestaña 'Search Directories'.

6 - En la pestaña 'Compiler', dale a 'Add' y selecciona el interior de la carpeta 'include'

7 - En la pestaña 'Linker' dale a 'Add'. Selecciona la carpeta en la que esté el archivo 'libglfw3.a'

8 - Ahora vete a la pestaña 'Licker settings'. Donde pone 'Other Licker Options', escribe lo siguiente:
Código:
-lglfw3
-lopengl32
-lgdi32
Tanto -lopengl32 como -lgdi32 son exclusivos de Windows.



¡¡AHORA YA DEBERÍA ESTAR TODO LISTO!! Prueba a compilar el código que te pasé antes a ver si no hay errores
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
ahigor

Desconectado Desconectado

Mensajes: 54


Ver Perfil
Re: información sobre opengl y window.h
« Respuesta #6 en: 24 Julio 2016, 19:21 pm »

perdón por la ignorancia pero donde esta cMace ?jajjaajjaa perdón de verdad me lo tengo que bajar o esta en codeblocks
En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: información sobre opengl y window.h
« Respuesta #7 en: 24 Julio 2016, 19:26 pm »

CMake es un programa (muy útil). Lo puedes descargar desde https://cmake.org/download/
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
ahigor

Desconectado Desconectado

Mensajes: 54


Ver Perfil
Re: información sobre opengl y window.h
« Respuesta #8 en: 24 Julio 2016, 19:36 pm »

bua tío eres una maquina gracias me estas ayudando un montón voy ha seguir los pasos que has puesto
En línea

ahigor

Desconectado Desconectado

Mensajes: 54


Ver Perfil
Re: información sobre opengl y window.h
« Respuesta #9 en: 24 Julio 2016, 21:02 pm »

me ha dado error -:(
En línea

Páginas: [1] 2 3 4 5 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda Sobre Menu de los window Ue
Programación Visual Basic
GarnoX 4 2,124 Último mensaje 2 Octubre 2011, 02:13 am
por raul338
Valve sigue defendiendo Ubuntu sobre Windows 8,Steam es más rápido con OpenGL...
Noticias
wolfbcn 2 3,101 Último mensaje 3 Agosto 2012, 21:16 pm
por Jenag
Información sobre SDL, OPENGL « 1 2 3 »
Programación C/C++
Yugget 26 10,548 Último mensaje 9 Marzo 2014, 20:30 pm
por Yugget
Sobre iso en window 10 no quiero que se haga carpeta « 1 2 »
Windows
gabrielprocs 13 6,529 Último mensaje 29 Agosto 2016, 11:13 am
por Songoku
Ayuda sobre DLL injection y opengl - Hacking de juegos
Hacking
ghostff 4 3,049 Último mensaje 9 Febrero 2022, 21:06 pm
por fary
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines