30/09/2018, 20:42
Nhờ anh chị xem giúp code OpenGL
Em mới học OpenGL, em làm theo y chang tut trên Youtube nhưng vẫn không được :’(
#include "window.h"
#include <iostream>
using namespace std;
namespace hoangtrung1999 {
namespace graphics{
Window::Window(const char *name , int width , int height)
{
m_Name = name;
m_Width = width;
m_Height = height;
if(!init())
{
glfwTerminate();
}
}
Window::~Window()
{
glfwTerminate();
}
bool Window::init()
{
if(!glfwInit())
{
cout<<"Fail to initialize GLFW!
";
return false;
}
m_window = glfwCreateWindow (m_Width , m_Height, m_Name , NULL , NULL);
if(!m_window)
{
cout<<"Fail create window";
return false;
}
glfwMakeContextCurrent(m_window);
return true;
}
bool Window::closed() const
{
return glfwWindowShouldClose(m_window);
}
void Window::Update() const
{
glfwSwapBuffers(m_window);
glfwPollEvents();
}
}
}`
#include <Windows.h>
#include <GLglew.h>
#include <GLfreeglut.h>
#include <iostream>
#include <GLFWglfw3.h>
#include "srcgraphicswindow.h"
using namespace std;
int main ()
{
using namespace hoangtrung1999;
using namespace graphics;
Window window ("hoangtrung1999" , 800 , 600);
while (!window.closed())
{
window.Update();
}
return 0;
}`
`#pragma once
#include <GLFWglfw3.h>
namespace hoangtrung1999 {
namespace graphics{
class Window
{
private:
const char *m_Name;
int m_Width, m_Height;
GLFWwindow *m_window;
bool m_Close;
public:
Window (const char *name , int width , int height);
~Window ();
bool closed() const;
void Update() const;
private:
bool init();
};
}
}`
@nguyenchiemminhvu , @Giay_Nhap
Khi chạy nó chỉ hiện “Fail to create window” chứ không báo lỗi @@
Bài liên quan
Mình thấy code bình thường.
http://www.glfw.org/docs/3.0/group__error.html
Bạn thử dùng error callback để coi nó báo lỗi gì.
Link bạn học là gì?
Cũng có thể bạn cần configure một số thứ liên quan tới Window trước khi tạo Window.
Link này ạ: https://www.youtube.com/watch?v=Pid8JGlBdPY&list=PLlrATfBNZ98fqE45g3jZA_hLGUrD4bo6_&index=5
à cái này dùng như thế nào anh @@ em còn mù mờ quá , với glew , glut , glfw nó khác nhau ở đâu anh? Sao mà mỗi tut trên youtube nó xài 1 cái riêng nhức đầu quá @@
Mấy cái này chỉ là cấu hình cho glfw window trước khi tạo thôi.
Framework glfw nó chỉ bao gồm chừng này thôi: http://www.glfw.org/docs/latest/index.html
Mà học OpenGL nên dùng glew , glut hay glfw anh ? 3 cái đó nó khác như thế nào?
GLFW là framework thay thế cho framework OpenGL 2.0 cũ với một số API và cách tổ chức code trên mô hình mới hơn.
GLFW chỉ giúp bạn:
Còn nếu bạn muốn làm việc nhiều hơn với phần đồ họa bên trong đối tượng GLFWwindow mà bạn đã tạo thì cần dùng thêm thư viện GLEW, nó là một tập hợp các API dùng trong đồ họa. GLUT cũng là một thư viện giúp làm việc với window và một số API đồ họa, nhưng GLEW nó chứa luôn là GLUT trong đó rồi.
Dưới đây là một vài API trong số hơn 3.500 API mà GLEW hổ trợ:
@nguyenchiemminhvu Cho em hỏi: liệu có thể dùng các hàm trong GLFW khi đang dùng GLEW , GLUT không ạ?