2022-05-18 16:23:10 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								// dear imgui: Platform Backend for GLUT/FreeGLUT
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// This needs to be used along with a Renderer (e.g. OpenGL2)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// !!! GLUT/FreeGLUT IS OBSOLETE PREHISTORIC SOFTWARE. Using GLUT is not recommended unless you really miss the 90's. !!!
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// !!! If someone or something is teaching you GLUT today, you are being abused. Please show some resistance. !!!
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// !!! Nowadays, prefer using GLFW or SDL instead!
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// Implemented features:
 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-11 16:09:28 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								//  [X] Platform: Partial keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy GLUT values are obsolete since 1.87 and not supported since 1.91.5]
 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-11 16:50:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// Missing features or Issues:
 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-18 16:23:10 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								//  [ ] Platform: GLUT is unable to distinguish e.g. Backspace from CTRL+H or TAB from CTRL+I
 
							 
						 
					
						
							
								
									
										
										
										
											2023-06-08 01:29:16 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								//  [ ] Platform: Missing horizontal mouse wheel support.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-18 16:23:10 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								//  [ ] Platform: Missing mouse cursor shape/visibility support.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								//  [ ] Platform: Missing clipboard support (not supported by Glut).
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								//  [ ] Platform: Missing gamepad support.
 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-11 16:09:28 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								//  [ ] Platform: Missing multi-viewport support (multiple windows).
 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-18 16:23:10 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-09 22:26:36 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// Learn about Dear ImGui:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// - FAQ                  https://dearimgui.com/faq
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// - Getting Started      https://dearimgui.com/getting-started
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// - Documentation        https://dearimgui.com/docs (same as your local docs/ folder).
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// - Introduction, links and more at the top of imgui.cpp
 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-18 16:23:10 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# pragma once 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-30 01:42:51 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# ifndef IMGUI_DISABLE 
 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-18 16:23:10 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# include  "imgui.h"      // IMGUI_IMPL_API 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-08-10 06:07:58 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// Follow "Getting Started" link and check examples/ folder to learn about using backends!
 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-18 16:23:10 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								IMGUI_IMPL_API  bool      ImGui_ImplGLUT_Init ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								IMGUI_IMPL_API  void      ImGui_ImplGLUT_InstallFuncs ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								IMGUI_IMPL_API  void      ImGui_ImplGLUT_Shutdown ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								IMGUI_IMPL_API  void      ImGui_ImplGLUT_NewFrame ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// You can call ImGui_ImplGLUT_InstallFuncs() to get all those functions installed automatically,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// or call them yourself from your own GLUT handlers. We are using the same weird names as GLUT for consistency..
 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-30 01:42:51 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								//------------------------------------ GLUT name ---------------------------------------------- Decent Name ---------
 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-18 16:23:10 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								IMGUI_IMPL_API  void      ImGui_ImplGLUT_ReshapeFunc ( int  w ,  int  h ) ;                            // ~ ResizeFunc
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								IMGUI_IMPL_API  void      ImGui_ImplGLUT_MotionFunc ( int  x ,  int  y ) ;                             // ~ MouseMoveFunc
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								IMGUI_IMPL_API  void      ImGui_ImplGLUT_MouseFunc ( int  button ,  int  state ,  int  x ,  int  y ) ;       // ~ MouseButtonFunc
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								IMGUI_IMPL_API  void      ImGui_ImplGLUT_MouseWheelFunc ( int  button ,  int  dir ,  int  x ,  int  y ) ;    // ~ MouseWheelFunc
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								IMGUI_IMPL_API  void      ImGui_ImplGLUT_KeyboardFunc ( unsigned  char  c ,  int  x ,  int  y ) ;          // ~ CharPressedFunc
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								IMGUI_IMPL_API  void      ImGui_ImplGLUT_KeyboardUpFunc ( unsigned  char  c ,  int  x ,  int  y ) ;        // ~ CharReleasedFunc
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								IMGUI_IMPL_API  void      ImGui_ImplGLUT_SpecialFunc ( int  key ,  int  x ,  int  y ) ;                   // ~ KeyPressedFunc
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								IMGUI_IMPL_API  void      ImGui_ImplGLUT_SpecialUpFunc ( int  key ,  int  x ,  int  y ) ;                 // ~ KeyReleasedFunc
 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-30 01:42:51 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# endif  // #ifndef IMGUI_DISABLE