mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	Merge remote-tracking branch 'origin' into 2015-05-menus
This commit is contained in:
		
							
								
								
									
										33
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -36,12 +36,13 @@ struct ImGuiStorage; | ||||
| struct ImGuiStyle; | ||||
|  | ||||
| typedef unsigned int ImU32; | ||||
| typedef unsigned short ImWchar;     // character for display | ||||
| typedef unsigned short ImWchar;     // character for keyboard input/display | ||||
| typedef void* ImTextureID;          // user data to refer to a texture (e.g. store your texture handle/id) | ||||
| typedef ImU32 ImGuiID;              // unique ID used by widgets (typically hashed from a stack of string) | ||||
| typedef int ImGuiCol;               // enum ImGuiCol_ | ||||
| typedef int ImGuiStyleVar;          // enum ImGuiStyleVar_ | ||||
| typedef int ImGuiKey;               // enum ImGuiKey_ | ||||
| typedef int ImGuiAlign;             // enum ImGuiAlign_ | ||||
| typedef int ImGuiColorEditMode;     // enum ImGuiColorEditMode_ | ||||
| typedef int ImGuiMouseCursor;       // enum ImGuiMouseCursor_ | ||||
| typedef int ImGuiWindowFlags;       // enum ImGuiWindowFlags_ | ||||
| @@ -79,9 +80,9 @@ namespace ImGui | ||||
|     IMGUI_API void        MemFree(void* ptr); | ||||
| } | ||||
|  | ||||
| // std::vector<> like class to avoid dragging dependencies (also: windows implementation of STL with debug enabled is absurdly slow, so let's bypass it so our code runs fast in debug).  | ||||
| // Lightweight std::vector<> like class to avoid dragging dependencies (also: windows implementation of STL with debug enabled is absurdly slow, so let's bypass it so our code runs fast in debug).  | ||||
| // Use '#define ImVector std::vector' if you want to use the STL type or your own type. | ||||
| // Our implementation does NOT call c++ constructors! because the data types we use don't need them (but that could be added as well). Only provide the minimum functionalities we need. | ||||
| // Our implementation does NOT call c++ constructors because we don't use them in ImGui. Don't use this class as a straight std::vector replacement in your code! | ||||
| #ifndef ImVector | ||||
| template<typename T> | ||||
| class ImVector | ||||
| @@ -145,8 +146,11 @@ public: | ||||
| // - struct ImGuiTextFilter             // Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]" | ||||
| // - struct ImGuiTextBuffer             // Text buffer for logging/accumulating text | ||||
| // - struct ImGuiStorage                // Custom key value storage (if you need to alter open/close states manually) | ||||
| // - struct ImGuiTextEditCallbackData   // Shared state of ImGui::InputText() when using custom callbacks | ||||
| // - struct ImColor                     // Helper functions to created packed 32-bit RGBA color values  | ||||
| // - struct ImDrawList                  // Draw command list | ||||
| // - struct ImFont                      // TTF font loader, bake glyphs into bitmap | ||||
| // - struct ImFontAtlas                 // Bake multiple fonts into a single texture, TTF font loader, bake glyphs into bitmap | ||||
| // - struct ImFont                      // Single font | ||||
|  | ||||
| // ImGui end-user API | ||||
| // In a namespace so that user can add extra functions in a separate file (e.g. Value() helpers for your vector or common types) | ||||
| @@ -321,11 +325,11 @@ namespace ImGui | ||||
|     IMGUI_API bool          VSliderInt(const char* label, const ImVec2& size, int* v, int v_min, int v_max, const char* display_format = "%.0f"); | ||||
|  | ||||
|     // Widgets: Drags (tip: ctrl+click on a drag box to input text) | ||||
|     IMGUI_API bool          DragFloat(const char* label, float* v, float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", float power = 1.0f);     // If v_max >= v_max we have no bound | ||||
|     IMGUI_API bool          DragFloat(const char* label, float* v, float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", float power = 1.0f);     // If v_min >= v_max we have no bound | ||||
|     IMGUI_API bool          DragFloat2(const char* label, float v[2], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", float power = 1.0f); | ||||
|     IMGUI_API bool          DragFloat3(const char* label, float v[3], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", float power = 1.0f); | ||||
|     IMGUI_API bool          DragFloat4(const char* label, float v[4], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", float power = 1.0f); | ||||
|     IMGUI_API bool          DragInt(const char* label, int* v, float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f");                                       // If v_max >= v_max we have no bound | ||||
|     IMGUI_API bool          DragInt(const char* label, int* v, float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f");                                       // If v_min >= v_max we have no bound | ||||
|     IMGUI_API bool          DragInt2(const char* label, int v[2], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f"); | ||||
|     IMGUI_API bool          DragInt3(const char* label, int v[3], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f"); | ||||
|     IMGUI_API bool          DragInt4(const char* label, int v[4], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f"); | ||||
| @@ -572,6 +576,14 @@ enum ImGuiStyleVar_ | ||||
|     ImGuiStyleVar_GrabMinSize          // float | ||||
| }; | ||||
|  | ||||
| enum ImGuiAlign_ | ||||
| { | ||||
|     ImGuiAlign_Left     = 1 << 0, | ||||
|     ImGuiAlign_Center   = 1 << 1, | ||||
|     ImGuiAlign_Right    = 1 << 2, | ||||
|     ImGuiAlign_Default  = ImGuiAlign_Left, | ||||
| }; | ||||
|  | ||||
| // Enumeration for ColorEditMode() | ||||
| enum ImGuiColorEditMode_ | ||||
| { | ||||
| @@ -611,6 +623,7 @@ struct ImGuiStyle | ||||
|     ImVec2      WindowPadding;              // Padding within a window | ||||
|     ImVec2      WindowMinSize;              // Minimum window size | ||||
|     float       WindowRounding;             // Radius of window corners rounding. Set to 0.0f to have rectangular windows | ||||
|     ImGuiAlign  WindowTitleAlign;           // Alignment for title bar text | ||||
|     float       ChildWindowRounding;        // Radius of child window corners rounding. Set to 0.0f to have rectangular windows | ||||
|     ImVec2      FramePadding;               // Padding within a framed rectangle (used by most widgets) | ||||
|     float       FrameRounding;              // Radius of frame corners rounding. Set to 0.0f to have rectangular frame (used by most widgets). | ||||
| @@ -704,6 +717,7 @@ struct ImGuiIO | ||||
|     float       Framerate;                  // Framerate estimation, in frame per second. Rolling average estimation based on IO.DeltaTime over 120 frames | ||||
|     int         MetricsAllocs;              // Number of active memory allocations | ||||
|     int         MetricsRenderVertices;      // Vertices processed during last call to Render() | ||||
|     int         MetricsActiveWindows;       // Number of visible windows (exclude child windows) | ||||
|  | ||||
|     //------------------------------------------------------------------ | ||||
|     // [Internal] ImGui will maintain those fields for you | ||||
| @@ -983,8 +997,10 @@ struct ImFontAtlas | ||||
|     IMGUI_API ImFont*           AddFontFromFileTTF(const char* filename, float size_pixels, const ImWchar* glyph_ranges = NULL, int font_no = 0); | ||||
|     IMGUI_API ImFont*           AddFontFromMemoryTTF(void* ttf_data, int ttf_size, float size_pixels, const ImWchar* glyph_ranges = NULL, int font_no = 0); // Transfer ownership of 'ttf_data' to ImFontAtlas, will be deleted after Build() | ||||
|     IMGUI_API ImFont*           AddFontFromMemoryCompressedTTF(const void* compressed_ttf_data, int compressed_ttf_size, float size_pixels, const ImWchar* glyph_ranges = NULL, int font_no = 0); // 'compressed_ttf_data' untouched and still owned by caller. Compress with binary_to_compressed_c.cpp | ||||
|     IMGUI_API void              ClearTexData();             // Saves RAM once the texture has been copied to graphics memory. | ||||
|     IMGUI_API void              Clear(); | ||||
|     IMGUI_API void              ClearTexData();             // Clear the CPU-side texture data. Saves RAM once the texture has been copied to graphics memory. | ||||
|     IMGUI_API void              ClearInputData();           // Clear the input TTF data (inc sizes, glyph ranges) | ||||
|     IMGUI_API void              ClearFonts();               // Clear the ImGui-side font data (glyphs storage, UV coordinates) | ||||
|     IMGUI_API void              Clear();                    // Clear all | ||||
|  | ||||
|     // Retrieve texture data | ||||
|     // User is in charge of copying the pixels into graphics memory, then call SetTextureUserID() | ||||
| @@ -1015,7 +1031,6 @@ struct ImFontAtlas | ||||
|     struct ImFontAtlasData; | ||||
|     ImVector<ImFontAtlasData*>  InputData;          // Internal data | ||||
|     IMGUI_API bool              Build();            // Build pixels data. This is automatically for you by the GetTexData*** functions. | ||||
|     IMGUI_API void              ClearInputData();   // Clear the input TTF data. | ||||
|     IMGUI_API void              RenderCustomTexData(int pass, void* rects); | ||||
| }; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user