mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 13:11:05 +01:00 
			
		
		
		
	Added ImGuiBackendFlags for backend to expose its capabilities. Added ImGuiBackendFlags_HasGamepad. (#787, #1542)
This commit is contained in:
		
							
								
								
									
										26
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -91,6 +91,7 @@ typedef int ImGuiStyleVar;          // enum: a variable identifier for styling | ||||
| typedef int ImDrawCornerFlags;      // flags: for ImDrawList::AddRect*() etc.   // enum ImDrawCornerFlags_ | ||||
| typedef int ImDrawListFlags;        // flags: for ImDrawList                    // enum ImDrawListFlags_ | ||||
| typedef int ImFontAtlasFlags;       // flags: for ImFontAtlas                   // enum ImFontAtlasFlags_ | ||||
| typedef int ImGuiBackendFlags;      // flags: for io.BackendFlags               // enum ImGuiBackendFlags_ | ||||
| typedef int ImGuiColorEditFlags;    // flags: for ColorEdit*(), ColorPicker*()  // enum ImGuiColorEditFlags_ | ||||
| typedef int ImGuiColumnsFlags;      // flags: for *Columns*()                   // enum ImGuiColumnsFlags_ | ||||
| typedef int ImGuiConfigFlags;       // flags: for io.ConfigFlags                // enum ImGuiConfigFlags_ | ||||
| @@ -736,7 +737,7 @@ enum ImGuiKey_ | ||||
|  | ||||
| // [BETA] Gamepad/Keyboard directional navigation | ||||
| // Keyboard: Set io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard to enable. NewFrame() will automatically fill io.NavInputs[] based on your io.KeyDown[] + io.KeyMap[] arrays. | ||||
| // Gamepad:  Set io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad to enable. Fill the io.NavInputs[] fields before calling NewFrame(). Note that io.NavInputs[] is cleared by EndFrame(). | ||||
| // Gamepad:  Set io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad to enable. Back-end: set ImGuiBackendFlags_HasGamepad and fill the io.NavInputs[] fields before calling NewFrame(). Note that io.NavInputs[] is cleared by EndFrame(). | ||||
| // Read instructions in imgui.cpp for more details. Download PNG/PSD at goo.gl/9LgVZW. | ||||
| enum ImGuiNavInput_ | ||||
| { | ||||
| @@ -769,17 +770,23 @@ enum ImGuiNavInput_ | ||||
|     ImGuiNavInput_InternalStart_ = ImGuiNavInput_KeyMenu_ | ||||
| }; | ||||
|  | ||||
| // Configuration flags stored in io.ConfigFlags | ||||
| // Configuration flags stored in io.ConfigFlags. Set by user/application. | ||||
| enum ImGuiConfigFlags_ | ||||
| { | ||||
|     ImGuiConfigFlags_NavEnableKeyboard    = 1 << 0,   // Master keyboard navigation enable flag. NewFrame() will automatically fill io.NavInputs[] based on io.KeyDown[]. | ||||
|     ImGuiConfigFlags_NavEnableGamepad     = 1 << 1,   // Master gamepad navigation enable flag. This is mostly to instruct your imgui back-end to fill io.NavInputs[]. | ||||
|     ImGuiConfigFlags_NavEnableSetMousePos = 1 << 2,   // Request navigation to allow moving the mouse cursor. May be useful on TV/console systems where moving a virtual mouse is awkward. Will update io.MousePos and set io.WantSetMousePos=true. If enabled you MUST honor io.WantSetMousePos requests in your binding, otherwise ImGui will react as if the mouse is jumping around back and forth. | ||||
|     ImGuiConfigFlags_NavNoCaptureKeyboard = 1 << 3,   // Do not set the io.WantCaptureKeyboard flag with io.NavActive is set.  | ||||
|     ImGuiConfigFlags_NavEnableKeyboard      = 1 << 0,   // Master keyboard navigation enable flag. NewFrame() will automatically fill io.NavInputs[] based on io.KeyDown[]. | ||||
|     ImGuiConfigFlags_NavEnableGamepad       = 1 << 1,   // Master gamepad navigation enable flag. This is mostly to instruct your imgui back-end to fill io.NavInputs[]. Back-end also needs to set ImGuiBackendFlags_HasGamepad. | ||||
|     ImGuiConfigFlags_NavEnableSetMousePos   = 1 << 2,   // Request navigation to allow moving the mouse cursor. May be useful on TV/console systems where moving a virtual mouse is awkward. Will update io.MousePos and set io.WantSetMousePos=true. If enabled you MUST honor io.WantSetMousePos requests in your binding, otherwise ImGui will react as if the mouse is jumping around back and forth. | ||||
|     ImGuiConfigFlags_NavNoCaptureKeyboard   = 1 << 3,   // Do not set the io.WantCaptureKeyboard flag with io.NavActive is set.  | ||||
|  | ||||
|     // User storage (to allow your back-end/engine to communicate to code that may be shared between multiple projects. Those flags are not used by core ImGui) | ||||
|     ImGuiConfigFlags_IsSRGB               = 1 << 20,  // Back-end is SRGB-aware. | ||||
|     ImGuiConfigFlags_IsTouchScreen        = 1 << 21   // Back-end is using a touch screen instead of a mouse. | ||||
|     ImGuiConfigFlags_IsSRGB                 = 1 << 20,  // Application is SRGB-aware. | ||||
|     ImGuiConfigFlags_IsTouchScreen          = 1 << 21   // Application is using a touch screen instead of a mouse. | ||||
| }; | ||||
|  | ||||
| // Back-end capabilities flags stored in io.BackendFlags. Set by imgui_impl_xxx or custom back-end. | ||||
| enum ImGuiBackendFlags_ | ||||
| { | ||||
|     ImGuiBackendFlags_HasGamepad            = 1 << 0    // Back-end has a connected gamepad | ||||
| }; | ||||
|  | ||||
| // Enumeration for PushStyleColor() / PopStyleColor() | ||||
| @@ -986,9 +993,10 @@ struct ImGuiIO | ||||
|     // Settings (fill once)                 // Default value: | ||||
|     //------------------------------------------------------------------ | ||||
|  | ||||
|     ImGuiConfigFlags   ConfigFlags;         // = 0                  // See ImGuiConfigFlags_ enum. Set by user/application. Gamepad/keyboard navigation options, etc. | ||||
|     ImGuiBackendFlags  BackendFlags;        // = 0                  // Set ImGuiBackendFlags_ enum. Set by imgui_impl_xxx files or custom back-end. | ||||
|     ImVec2        DisplaySize;              // <unset>              // Display size, in pixels. For clamping windows positions. | ||||
|     float         DeltaTime;                // = 1.0f/60.0f         // Time elapsed since last frame, in seconds. | ||||
|     ImGuiConfigFlags ConfigFlags;           // = 0                  // See ImGuiConfigFlags_ enum. Gamepad/keyboard navigation options, etc. | ||||
|     float         IniSavingRate;            // = 5.0f               // Maximum time between saving positions/sizes to .ini file, in seconds. | ||||
|     const char*   IniFilename;              // = "imgui.ini"        // Path to .ini file. NULL to disable .ini saving. | ||||
|     const char*   LogFilename;              // = "imgui_log.txt"    // Path to .log file (default parameter to ImGui::LogToFile when no file is specified). | ||||
|   | ||||
		Reference in New Issue
	
	Block a user