@ -217,7 +217,44 @@ void InitGL()
glewInit ( ) ;
glewInit ( ) ;
GLenum err = GL_NO_ERROR ;
GLenum err = GL_NO_ERROR ;
err = glGetError ( ) ; IM_ASSERT ( err = = GL_NO_ERROR ) ;
}
void InitImGui ( )
{
int w , h ;
glfwGetWindowSize ( window , & w , & h ) ;
ImGuiIO & io = ImGui : : GetIO ( ) ;
io . DisplaySize = ImVec2 ( ( float ) w , ( float ) h ) ; // Display size, in pixels. For clamping windows positions.
io . DeltaTime = 1.0f / 60.0f ; // Time elapsed since last frame, in seconds (in this sample app we'll override this every frame because our timestep is variable)
io . PixelCenterOffset = 0.5f ; // Align OpenGL texels
io . KeyMap [ ImGuiKey_Tab ] = GLFW_KEY_TAB ; // Keyboard mapping. ImGui will use those indices to peek into the io.KeyDown[] array that we will update during the application lifetime.
io . KeyMap [ ImGuiKey_LeftArrow ] = GLFW_KEY_LEFT ;
io . KeyMap [ ImGuiKey_RightArrow ] = GLFW_KEY_RIGHT ;
io . KeyMap [ ImGuiKey_UpArrow ] = GLFW_KEY_UP ;
io . KeyMap [ ImGuiKey_DownArrow ] = GLFW_KEY_DOWN ;
io . KeyMap [ ImGuiKey_Home ] = GLFW_KEY_HOME ;
io . KeyMap [ ImGuiKey_End ] = GLFW_KEY_END ;
io . KeyMap [ ImGuiKey_Delete ] = GLFW_KEY_DELETE ;
io . KeyMap [ ImGuiKey_Backspace ] = GLFW_KEY_BACKSPACE ;
io . KeyMap [ ImGuiKey_Enter ] = GLFW_KEY_ENTER ;
io . KeyMap [ ImGuiKey_Escape ] = GLFW_KEY_ESCAPE ;
io . KeyMap [ ImGuiKey_A ] = GLFW_KEY_A ;
io . KeyMap [ ImGuiKey_C ] = GLFW_KEY_C ;
io . KeyMap [ ImGuiKey_V ] = GLFW_KEY_V ;
io . KeyMap [ ImGuiKey_X ] = GLFW_KEY_X ;
io . KeyMap [ ImGuiKey_Y ] = GLFW_KEY_Y ;
io . KeyMap [ ImGuiKey_Z ] = GLFW_KEY_Z ;
io . RenderDrawListsFn = ImImpl_RenderDrawLists ;
io . SetClipboardTextFn = ImImpl_SetClipboardTextFn ;
io . GetClipboardTextFn = ImImpl_GetClipboardTextFn ;
// Setup graphics backend
GLint status = GL_TRUE ;
GLint status = GL_TRUE ;
GLenum err = GL_NO_ERROR ;
err = glGetError ( ) ; IM_ASSERT ( err = = GL_NO_ERROR ) ;
err = glGetError ( ) ; IM_ASSERT ( err = = GL_NO_ERROR ) ;
// Create and compile the vertex shader
// Create and compile the vertex shader
@ -270,38 +307,6 @@ void InitGL()
glVertexAttribPointer ( colAttrib , 4 , GL_UNSIGNED_BYTE , GL_TRUE , sizeof ( ImDrawVert ) , ( void * ) ( 4 * sizeof ( float ) ) ) ;
glVertexAttribPointer ( colAttrib , 4 , GL_UNSIGNED_BYTE , GL_TRUE , sizeof ( ImDrawVert ) , ( void * ) ( 4 * sizeof ( float ) ) ) ;
glEnableVertexAttribArray ( colAttrib ) ;
glEnableVertexAttribArray ( colAttrib ) ;
err = glGetError ( ) ; IM_ASSERT ( err = = GL_NO_ERROR ) ;
err = glGetError ( ) ; IM_ASSERT ( err = = GL_NO_ERROR ) ;
}
void InitImGui ( )
{
int w , h ;
glfwGetWindowSize ( window , & w , & h ) ;
ImGuiIO & io = ImGui : : GetIO ( ) ;
io . DisplaySize = ImVec2 ( ( float ) w , ( float ) h ) ;
io . DeltaTime = 1.0f / 60.0f ;
io . KeyMap [ ImGuiKey_Tab ] = GLFW_KEY_TAB ;
io . KeyMap [ ImGuiKey_LeftArrow ] = GLFW_KEY_LEFT ;
io . KeyMap [ ImGuiKey_RightArrow ] = GLFW_KEY_RIGHT ;
io . KeyMap [ ImGuiKey_UpArrow ] = GLFW_KEY_UP ;
io . KeyMap [ ImGuiKey_DownArrow ] = GLFW_KEY_DOWN ;
io . KeyMap [ ImGuiKey_Home ] = GLFW_KEY_HOME ;
io . KeyMap [ ImGuiKey_End ] = GLFW_KEY_END ;
io . KeyMap [ ImGuiKey_Delete ] = GLFW_KEY_DELETE ;
io . KeyMap [ ImGuiKey_Backspace ] = GLFW_KEY_BACKSPACE ;
io . KeyMap [ ImGuiKey_Enter ] = GLFW_KEY_ENTER ;
io . KeyMap [ ImGuiKey_Escape ] = GLFW_KEY_ESCAPE ;
io . KeyMap [ ImGuiKey_A ] = GLFW_KEY_A ;
io . KeyMap [ ImGuiKey_C ] = GLFW_KEY_C ;
io . KeyMap [ ImGuiKey_V ] = GLFW_KEY_V ;
io . KeyMap [ ImGuiKey_X ] = GLFW_KEY_X ;
io . KeyMap [ ImGuiKey_Y ] = GLFW_KEY_Y ;
io . KeyMap [ ImGuiKey_Z ] = GLFW_KEY_Z ;
io . PixelCenterOffset = 0.5f ;
io . RenderDrawListsFn = ImImpl_RenderDrawLists ;
io . SetClipboardTextFn = ImImpl_SetClipboardTextFn ;
io . GetClipboardTextFn = ImImpl_GetClipboardTextFn ;
// Load font texture
// Load font texture
glGenTextures ( 1 , & fontTex ) ;
glGenTextures ( 1 , & fontTex ) ;
@ -348,10 +353,10 @@ int main(int argc, char** argv)
time = current_time ;
time = current_time ;
double mouse_x , mouse_y ;
double mouse_x , mouse_y ;
glfwGetCursorPos ( window , & mouse_x , & mouse_y ) ;
glfwGetCursorPos ( window , & mouse_x , & mouse_y ) ;
io . MousePos = ImVec2 ( ( float ) mouse_x , ( float ) mouse_y ) ;
io . MousePos = ImVec2 ( ( float ) mouse_x , ( float ) mouse_y ) ; // Mouse position, in pixels (set to -1,-1 if no mouse / on another screen, etc.)
io . MouseDown [ 0 ] = glfwGetMouseButton ( window , GLFW_MOUSE_BUTTON_LEFT ) ! = 0 ;
io . MouseDown [ 0 ] = glfwGetMouseButton ( window , GLFW_MOUSE_BUTTON_LEFT ) ! = 0 ;
io . MouseDown [ 1 ] = glfwGetMouseButton ( window , GLFW_MOUSE_BUTTON_RIGHT ) ! = 0 ;
io . MouseDown [ 1 ] = glfwGetMouseButton ( window , GLFW_MOUSE_BUTTON_RIGHT ) ! = 0 ;
io . MouseWheel = ( mouse_wheel ! = 0 ) ? mouse_wheel > 0.0f ? 1 : - 1 : 0 ;
io . MouseWheel = ( mouse_wheel ! = 0 ) ? mouse_wheel > 0.0f ? 1 : - 1 : 0 ; // Mouse wheel: -1,0,+1
mouse_wheel = 0.0f ;
mouse_wheel = 0.0f ;
ImGui : : NewFrame ( ) ;
ImGui : : NewFrame ( ) ;