- removed 18805 CR characters - removed 774 trailing whitespaces - replaced 1922 tabs with spaces - fixed 31 svn:eol-style propertiesundefined
| @@ -188,7 +188,7 @@ setup_command: | |||
| T_OBJPOSITION v3 { if (uc.m_last_cmd == "ADDLIGHT") | |||
| uc.m_sstp.m_lights.Last()->SetPosition(vec3($2[0], $2[1], $2[2])); } | |||
| | T_OBJLOOKAT v3 { if (uc.m_last_cmd == "ADDLIGHT") | |||
| { | |||
| { | |||
| } } | |||
| | T_OBJCOLOR v4{ if (uc.m_last_cmd == "ADDLIGHT") | |||
| uc.m_sstp.m_lights.Last()->SetColor(vec4($2[0], $2[1], $2[2], $2[3])); } | |||
| @@ -104,7 +104,7 @@ protected: | |||
| DRAWGROUP_HUD, | |||
| DRAWGROUP_IMGUI, | |||
| DRAWGROUP_CAPTURE, | |||
| DRAWGROUP_END //Must be the last element | |||
| } | |||
| m_drawgroup; | |||
| @@ -79,7 +79,7 @@ static void ImGui_ImplDX11_RenderDrawLists(ImDrawList** const cmd_lists, int cmd | |||
| const float R = ImGui::GetIO().DisplaySize.x; | |||
| const float B = ImGui::GetIO().DisplaySize.y; | |||
| const float T = 0.0f; | |||
| const float mvp[4][4] = | |||
| const float mvp[4][4] = | |||
| { | |||
| { 2.0f/(R-L), 0.0f, 0.0f, 0.0f}, | |||
| { 0.0f, 2.0f/(T-B), 0.0f, 0.0f,}, | |||
| @@ -134,7 +134,7 @@ static void ImGui_ImplDX11_RenderDrawLists(ImDrawList** const cmd_lists, int cmd | |||
| { | |||
| const D3D11_RECT r = { (LONG)pcmd->clip_rect.x, (LONG)pcmd->clip_rect.y, (LONG)pcmd->clip_rect.z, (LONG)pcmd->clip_rect.w }; | |||
| g_pd3dDeviceContext->PSSetShaderResources(0, 1, (ID3D11ShaderResourceView**)&pcmd->texture_id); | |||
| g_pd3dDeviceContext->RSSetScissorRects(1, &r); | |||
| g_pd3dDeviceContext->RSSetScissorRects(1, &r); | |||
| g_pd3dDeviceContext->Draw(pcmd->vtx_count, vtx_offset); | |||
| } | |||
| vtx_offset += pcmd->vtx_count; | |||
| @@ -156,20 +156,20 @@ LRESULT ImGui_ImplDX11_WndProcHandler(HWND, UINT msg, WPARAM wParam, LPARAM lPar | |||
| io.MouseDown[0] = true; | |||
| return true; | |||
| case WM_LBUTTONUP: | |||
| io.MouseDown[0] = false; | |||
| io.MouseDown[0] = false; | |||
| return true; | |||
| case WM_RBUTTONDOWN: | |||
| io.MouseDown[1] = true; | |||
| io.MouseDown[1] = true; | |||
| return true; | |||
| case WM_RBUTTONUP: | |||
| io.MouseDown[1] = false; | |||
| io.MouseDown[1] = false; | |||
| return true; | |||
| case WM_MOUSEWHEEL: | |||
| io.MouseWheel += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f; | |||
| return true; | |||
| case WM_MOUSEMOVE: | |||
| io.MousePos.x = (signed short)(lParam); | |||
| io.MousePos.y = (signed short)(lParam >> 16); | |||
| io.MousePos.y = (signed short)(lParam >> 16); | |||
| return true; | |||
| case WM_KEYDOWN: | |||
| if (wParam < 256) | |||
| @@ -257,7 +257,7 @@ bool ImGui_ImplDX11_CreateDeviceObjects() | |||
| // Create the vertex shader | |||
| { | |||
| static const char* vertexShader = | |||
| static const char* vertexShader = | |||
| "cbuffer vertexBuffer : register(c0) \ | |||
| {\ | |||
| float4x4 ProjectionMatrix; \ | |||
| @@ -315,7 +315,7 @@ bool ImGui_ImplDX11_CreateDeviceObjects() | |||
| // Create the pixel shader | |||
| { | |||
| static const char* pixelShader = | |||
| static const char* pixelShader = | |||
| "struct PS_INPUT\ | |||
| {\ | |||
| float4 pos : SV_POSITION;\ | |||
| @@ -396,7 +396,7 @@ bool ImGui_ImplDX11_Init(void* hwnd, ID3D11Device* device, ID3D11DeviceContex | |||
| g_pd3dDevice = device; | |||
| g_pd3dDeviceContext = device_context; | |||
| if (!QueryPerformanceFrequency((LARGE_INTEGER *)&g_TicksPerSecond)) | |||
| if (!QueryPerformanceFrequency((LARGE_INTEGER *)&g_TicksPerSecond)) | |||
| return false; | |||
| if (!QueryPerformanceCounter((LARGE_INTEGER *)&g_Time)) | |||
| return false; | |||
| @@ -449,7 +449,7 @@ void ImGui_ImplDX11_NewFrame() | |||
| // Setup time step | |||
| INT64 current_time; | |||
| QueryPerformanceCounter((LARGE_INTEGER *)¤t_time); | |||
| QueryPerformanceCounter((LARGE_INTEGER *)¤t_time); | |||
| io.DeltaTime = (float)(current_time - g_Time) / g_TicksPerSecond; | |||
| g_Time = current_time; | |||
| @@ -19,7 +19,7 @@ void CreateRenderTarget() | |||
| g_pSwapChain->GetDesc(&sd); | |||
| // Create the render target | |||
| ID3D11Texture2D* pBackBuffer; | |||
| ID3D11Texture2D* pBackBuffer; | |||
| D3D11_RENDER_TARGET_VIEW_DESC render_target_view_desc; | |||
| ZeroMemory(&render_target_view_desc, sizeof(render_target_view_desc)); | |||
| render_target_view_desc.Format = sd.BufferDesc.Format; | |||
| @@ -120,20 +120,20 @@ LRESULT ImGui_ImplDX9_WndProcHandler(HWND, UINT msg, WPARAM wParam, LPARAM lPara | |||
| io.MouseDown[0] = true; | |||
| return true; | |||
| case WM_LBUTTONUP: | |||
| io.MouseDown[0] = false; | |||
| io.MouseDown[0] = false; | |||
| return true; | |||
| case WM_RBUTTONDOWN: | |||
| io.MouseDown[1] = true; | |||
| io.MouseDown[1] = true; | |||
| return true; | |||
| case WM_RBUTTONUP: | |||
| io.MouseDown[1] = false; | |||
| io.MouseDown[1] = false; | |||
| return true; | |||
| case WM_MOUSEWHEEL: | |||
| io.MouseWheel += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f; | |||
| return true; | |||
| case WM_MOUSEMOVE: | |||
| io.MousePos.x = (signed short)(lParam); | |||
| io.MousePos.y = (signed short)(lParam >> 16); | |||
| io.MousePos.y = (signed short)(lParam >> 16); | |||
| return true; | |||
| case WM_KEYDOWN: | |||
| if (wParam < 256) | |||
| @@ -157,7 +157,7 @@ bool ImGui_ImplDX9_Init(void* hwnd, IDirect3DDevice9* device) | |||
| g_hWnd = (HWND)hwnd; | |||
| g_pd3dDevice = device; | |||
| if (!QueryPerformanceFrequency((LARGE_INTEGER *)&g_TicksPerSecond)) | |||
| if (!QueryPerformanceFrequency((LARGE_INTEGER *)&g_TicksPerSecond)) | |||
| return false; | |||
| if (!QueryPerformanceCounter((LARGE_INTEGER *)&g_Time)) | |||
| return false; | |||
| @@ -212,10 +212,10 @@ static void ImGui_ImplDX9_CreateFontsTexture() | |||
| return; | |||
| } | |||
| D3DLOCKED_RECT tex_locked_rect; | |||
| if (pTexture->LockRect(0, &tex_locked_rect, NULL, 0) != D3D_OK) | |||
| { | |||
| IM_ASSERT(0); | |||
| return; | |||
| if (pTexture->LockRect(0, &tex_locked_rect, NULL, 0) != D3D_OK) | |||
| { | |||
| IM_ASSERT(0); | |||
| return; | |||
| } | |||
| for (int y = 0; y < height; y++) | |||
| memcpy((unsigned char *)tex_locked_rect.pBits + tex_locked_rect.Pitch * y, pixels + (width * bytes_per_pixel) * y, (width * bytes_per_pixel)); | |||
| @@ -267,7 +267,7 @@ void ImGui_ImplDX9_NewFrame() | |||
| // Setup time step | |||
| INT64 current_time; | |||
| QueryPerformanceCounter((LARGE_INTEGER *)¤t_time); | |||
| QueryPerformanceCounter((LARGE_INTEGER *)¤t_time); | |||
| io.DeltaTime = (float)(current_time - g_Time) / g_TicksPerSecond; | |||
| g_Time = current_time; | |||
| @@ -7,7 +7,7 @@ extern "C" { | |||
| /* | |||
| ** Copyright (c) 2007-2012 The Khronos Group Inc. | |||
| ** | |||
| ** | |||
| ** Permission is hereby granted, free of charge, to any person obtaining a | |||
| ** copy of this software and/or associated documentation files (the | |||
| ** "Materials"), to deal in the Materials without restriction, including | |||
| @@ -15,10 +15,10 @@ extern "C" { | |||
| ** distribute, sublicense, and/or sell copies of the Materials, and to | |||
| ** permit persons to whom the Materials are furnished to do so, subject to | |||
| ** the following conditions: | |||
| ** | |||
| ** | |||
| ** The above copyright notice and this permission notice shall be included | |||
| ** in all copies or substantial portions of the Materials. | |||
| ** | |||
| ** | |||
| ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |||
| ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |||
| ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | |||
| @@ -48,10 +48,10 @@ static void ImGui_ImplGlfwGL3_RenderDrawLists(ImDrawList** const cmd_lists, int | |||
| const float height = ImGui::GetIO().DisplaySize.y; | |||
| const float ortho_projection[4][4] = | |||
| { | |||
| { 2.0f/width, 0.0f, 0.0f, 0.0f }, | |||
| { 0.0f, 2.0f/-height, 0.0f, 0.0f }, | |||
| { 0.0f, 0.0f, -1.0f, 0.0f }, | |||
| { -1.0f, 1.0f, 0.0f, 1.0f }, | |||
| { 2.0f/width, 0.0f, 0.0f, 0.0f }, | |||
| { 0.0f, 2.0f/-height, 0.0f, 0.0f }, | |||
| { 0.0f, 0.0f, -1.0f, 0.0f }, | |||
| { -1.0f, 1.0f, 0.0f, 1.0f }, | |||
| }; | |||
| glUseProgram(g_ShaderHandle); | |||
| glUniform1i(g_AttribLocationTex, 0); | |||
| @@ -183,9 +183,9 @@ bool ImGui_ImplGlfwGL3_CreateDeviceObjects() | |||
| "out vec4 Frag_Color;\n" | |||
| "void main()\n" | |||
| "{\n" | |||
| " Frag_UV = UV;\n" | |||
| " Frag_Color = Color;\n" | |||
| " gl_Position = ProjMtx * vec4(Position.xy,0,1);\n" | |||
| " Frag_UV = UV;\n" | |||
| " Frag_Color = Color;\n" | |||
| " gl_Position = ProjMtx * vec4(Position.xy,0,1);\n" | |||
| "}\n"; | |||
| const GLchar* fragment_shader = | |||
| @@ -196,7 +196,7 @@ bool ImGui_ImplGlfwGL3_CreateDeviceObjects() | |||
| "out vec4 Out_Color;\n" | |||
| "void main()\n" | |||
| "{\n" | |||
| " Out_Color = Frag_Color * texture( Texture, Frag_UV.st);\n" | |||
| " Out_Color = Frag_Color * texture( Texture, Frag_UV.st);\n" | |||
| "}\n"; | |||
| g_ShaderHandle = glCreateProgram(); | |||
| @@ -331,15 +331,15 @@ void ImGui_ImplGlfwGL3_NewFrame() | |||
| // (we already got mouse wheel, keyboard keys & characters from glfw callbacks polled in glfwPollEvents()) | |||
| if (glfwGetWindowAttrib(g_Window, GLFW_FOCUSED)) | |||
| { | |||
| double mouse_x, mouse_y; | |||
| glfwGetCursorPos(g_Window, &mouse_x, &mouse_y); | |||
| mouse_x *= (float)display_w / w; // Convert mouse coordinates to pixels | |||
| mouse_y *= (float)display_h / h; | |||
| io.MousePos = ImVec2((float)mouse_x, (float)mouse_y); // Mouse position, in pixels (set to -1,-1 if no mouse / on another screen, etc.) | |||
| double mouse_x, mouse_y; | |||
| glfwGetCursorPos(g_Window, &mouse_x, &mouse_y); | |||
| mouse_x *= (float)display_w / w; // Convert mouse coordinates to pixels | |||
| mouse_y *= (float)display_h / h; | |||
| io.MousePos = ImVec2((float)mouse_x, (float)mouse_y); // Mouse position, in pixels (set to -1,-1 if no mouse / on another screen, etc.) | |||
| } | |||
| else | |||
| { | |||
| io.MousePos = ImVec2(-1,-1); | |||
| io.MousePos = ImVec2(-1,-1); | |||
| } | |||
| for (int i = 0; i < 3; i++) | |||
| @@ -71,7 +71,7 @@ int main(int, char**) | |||
| ImGui::SetNextWindowPos(ImVec2(650, 20), ImGuiSetCond_FirstUseEver); | |||
| ImGui::ShowTestWindow(&show_test_window); | |||
| } | |||
| // Rendering | |||
| glViewport(0, 0, (int)io.DisplaySize.x, (int)io.DisplaySize.y); | |||
| glClearColor(clear_color.x, clear_color.y, clear_color.z, clear_color.w); | |||
| @@ -235,17 +235,17 @@ void ImGui_ImplGlfw_NewFrame() | |||
| // (we already got mouse wheel, keyboard keys & characters from glfw callbacks polled in glfwPollEvents()) | |||
| if (glfwGetWindowAttrib(g_Window, GLFW_FOCUSED)) | |||
| { | |||
| double mouse_x, mouse_y; | |||
| glfwGetCursorPos(g_Window, &mouse_x, &mouse_y); | |||
| mouse_x *= (float)display_w / w; // Convert mouse coordinates to pixels | |||
| mouse_y *= (float)display_h / h; | |||
| io.MousePos = ImVec2((float)mouse_x, (float)mouse_y); // Mouse position, in pixels (set to -1,-1 if no mouse / on another screen, etc.) | |||
| double mouse_x, mouse_y; | |||
| glfwGetCursorPos(g_Window, &mouse_x, &mouse_y); | |||
| mouse_x *= (float)display_w / w; // Convert mouse coordinates to pixels | |||
| mouse_y *= (float)display_h / h; | |||
| io.MousePos = ImVec2((float)mouse_x, (float)mouse_y); // Mouse position, in pixels (set to -1,-1 if no mouse / on another screen, etc.) | |||
| } | |||
| else | |||
| { | |||
| io.MousePos = ImVec2(-1,-1); | |||
| io.MousePos = ImVec2(-1,-1); | |||
| } | |||
| for (int i = 0; i < 3; i++) | |||
| { | |||
| io.MouseDown[i] = g_MousePressed[i] || glfwGetMouseButton(g_Window, i) != 0; // If a mouse press event came, always pass it as "mouse held this frame", so we don't miss click-release events that are shorter than 1 frame. | |||
| @@ -47,7 +47,7 @@ typedef int ImGuiMouseCursor; // enum ImGuiMouseCursor_ | |||
| typedef int ImGuiWindowFlags; // enum ImGuiWindowFlags_ | |||
| typedef int ImGuiSetCond; // enum ImGuiSetCondition_ | |||
| typedef int ImGuiInputTextFlags; // enum ImGuiInputTextFlags_ | |||
| struct ImGuiTextEditCallbackData; // for advanced uses of InputText() | |||
| struct ImGuiTextEditCallbackData; // for advanced uses of InputText() | |||
| typedef int (*ImGuiTextEditCallback)(ImGuiTextEditCallbackData *data); | |||
| struct ImVec2 | |||
| @@ -79,7 +79,7 @@ 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). | |||
| // 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. | |||
| #ifndef ImVector | |||
| @@ -120,14 +120,14 @@ public: | |||
| inline void swap(ImVector<T>& rhs) { const size_t rhs_size = rhs.Size; rhs.Size = Size; Size = rhs_size; const size_t rhs_cap = rhs.Capacity; rhs.Capacity = Capacity; Capacity = rhs_cap; value_type* rhs_data = rhs.Data; rhs.Data = Data; Data = rhs_data; } | |||
| inline void resize(size_t new_size) { if (new_size > Capacity) reserve(new_size); Size = new_size; } | |||
| inline void reserve(size_t new_capacity) | |||
| { | |||
| inline void reserve(size_t new_capacity) | |||
| { | |||
| if (new_capacity <= Capacity) return; | |||
| T* new_data = (value_type*)ImGui::MemAlloc(new_capacity * sizeof(value_type)); | |||
| memcpy(new_data, Data, Size * sizeof(value_type)); | |||
| ImGui::MemFree(Data); | |||
| Data = new_data; | |||
| Capacity = new_capacity; | |||
| Capacity = new_capacity; | |||
| } | |||
| inline void push_back(const value_type& v) { if (Size == Capacity) reserve(Capacity ? Capacity * 2 : 4); Data[Size++] = v; } | |||
| @@ -268,7 +268,7 @@ namespace ImGui | |||
| IMGUI_API void TextWrapped(const char* fmt, ...); // shortcut for PushTextWrapPos(0.0f); Text(fmt, ...); PopTextWrapPos(); | |||
| IMGUI_API void TextWrappedV(const char* fmt, va_list args); | |||
| IMGUI_API void TextUnformatted(const char* text, const char* text_end = NULL); // doesn't require null terminated string if 'text_end' is specified. no copy done to any bounded stack buffer, recommended for long chunks of text. | |||
| IMGUI_API void LabelText(const char* label, const char* fmt, ...); // display text+label aligned the same way as value+label widgets | |||
| IMGUI_API void LabelText(const char* label, const char* fmt, ...); // display text+label aligned the same way as value+label widgets | |||
| IMGUI_API void LabelTextV(const char* label, const char* fmt, va_list args); | |||
| IMGUI_API void Bullet(); | |||
| IMGUI_API void BulletText(const char* fmt, ...); | |||
| @@ -355,7 +355,7 @@ namespace ImGui | |||
| IMGUI_API bool IsItemHovered(); // was the last item hovered by mouse? | |||
| IMGUI_API bool IsItemHoveredRectOnly(); // was the last item hovered by mouse? even if another item is active while we are hovering this. | |||
| IMGUI_API bool IsItemActive(); // was the last item active? (e.g. button being held, text field being edited- items that don't interact will always return false) | |||
| IMGUI_API bool IsAnyItemActive(); // | |||
| IMGUI_API bool IsAnyItemActive(); // | |||
| IMGUI_API ImVec2 GetItemRectMin(); // get bounding rect of last item | |||
| IMGUI_API ImVec2 GetItemRectMax(); // " | |||
| IMGUI_API ImVec2 GetItemRectSize(); // " | |||
| @@ -611,9 +611,9 @@ struct ImGuiIO | |||
| // User Functions | |||
| //------------------------------------------------------------------ | |||
| // REQUIRED: rendering function. | |||
| // REQUIRED: rendering function. | |||
| // See example code if you are unsure of how to implement this. | |||
| void (*RenderDrawListsFn)(ImDrawList** const draw_lists, int count); | |||
| void (*RenderDrawListsFn)(ImDrawList** const draw_lists, int count); | |||
| // Optional: access OS clipboard | |||
| // (default to use native Win32 clipboard on Windows, otherwise uses a private clipboard. Override to access OS clipboard on other architectures) | |||
| @@ -636,7 +636,7 @@ struct ImGuiIO | |||
| ImVec2 MousePos; // Mouse position, in pixels (set to -1,-1 if no mouse / on another screen, etc.) | |||
| bool MouseDown[5]; // Mouse buttons. ImGui itself only uses button 0 (left button). Others buttons allows to track if mouse is being used by your application + available to user as a convenience via IsMouse** API. | |||
| float MouseWheel; // Mouse wheel: 1 unit scrolls about 5 lines text. | |||
| float MouseWheel; // Mouse wheel: 1 unit scrolls about 5 lines text. | |||
| bool MouseDrawCursor; // Request ImGui to draw a mouse cursor for you (if you are on a platform without a mouse cursor). | |||
| bool KeyCtrl; // Keyboard modifier pressed: Control | |||
| bool KeyShift; // Keyboard modifier pressed: Shift | |||
| @@ -749,13 +749,13 @@ struct ImGuiTextBuffer | |||
| // - You want to store custom debug data easily without adding or editing structures in your code. | |||
| struct ImGuiStorage | |||
| { | |||
| struct Pair | |||
| { | |||
| ImGuiID key; | |||
| union { int val_i; float val_f; void* val_p; }; | |||
| Pair(ImGuiID _key, int _val_i) { key = _key; val_i = _val_i; } | |||
| Pair(ImGuiID _key, float _val_f) { key = _key; val_f = _val_f; } | |||
| Pair(ImGuiID _key, void* _val_p) { key = _key; val_p = _val_p; } | |||
| struct Pair | |||
| { | |||
| ImGuiID key; | |||
| union { int val_i; float val_f; void* val_p; }; | |||
| Pair(ImGuiID _key, int _val_i) { key = _key; val_i = _val_i; } | |||
| Pair(ImGuiID _key, float _val_f) { key = _key; val_f = _val_f; } | |||
| Pair(ImGuiID _key, void* _val_p) { key = _key; val_p = _val_p; } | |||
| }; | |||
| ImVector<Pair> Data; | |||
| @@ -770,7 +770,7 @@ struct ImGuiStorage | |||
| IMGUI_API void* GetVoidPtr(ImGuiID key) const; // default_val is NULL | |||
| IMGUI_API void SetVoidPtr(ImGuiID key, void* val); | |||
| // - Get***Ref() functions finds pair, insert on demand if missing, return pointer. Useful if you intend to do Get+Set. | |||
| // - Get***Ref() functions finds pair, insert on demand if missing, return pointer. Useful if you intend to do Get+Set. | |||
| // - References are only valid until a new value is added to the storage. Calling a Set***() function or a Get***Ref() function invalidates the pointer. | |||
| // - A typical use case where this is convenient: | |||
| // float* pvar = ImGui::GetFloatRef(key); ImGui::SliderFloat("var", pvar, 0, 100.0f); some_var += *pvar; | |||
| @@ -876,7 +876,7 @@ struct ImDrawList | |||
| // [Internal to ImGui] | |||
| ImVector<ImVec4> clip_rect_stack; // [Internal] | |||
| ImVector<ImTextureID> texture_id_stack; // [Internal] | |||
| ImVector<ImTextureID> texture_id_stack; // [Internal] | |||
| ImDrawVert* vtx_write; // [Internal] point within vtx_buffer after each add command (to avoid using the ImVector<> operators too much) | |||
| ImDrawList() { Clear(); } | |||
| @@ -888,7 +888,7 @@ struct ImDrawList | |||
| IMGUI_API void PushTextureID(const ImTextureID& texture_id); | |||
| IMGUI_API void PopTextureID(); | |||
| // Primitives | |||
| // Primitives | |||
| IMGUI_API void AddLine(const ImVec2& a, const ImVec2& b, ImU32 col, float half_thickness = 0.50f); | |||
| IMGUI_API void AddRect(const ImVec2& a, const ImVec2& b, ImU32 col, float rounding = 0.0f, int rounding_corners=0x0F); | |||
| IMGUI_API void AddRectFilled(const ImVec2& a, const ImVec2& b, ImU32 col, float rounding = 0.0f, int rounding_corners=0x0F); | |||
| @@ -386,7 +386,7 @@ static stbrp__findresult stbrp__skyline_find_best_pos(stbrp_context *c, int widt | |||
| } | |||
| } | |||
| tail = tail->next; | |||
| } | |||
| } | |||
| } | |||
| fr.prev_link = best; | |||
| @@ -13,7 +13,7 @@ | |||
| // texts, as its performance does not scale and it has limited undo). | |||
| // | |||
| // Non-trivial behaviors are modelled after Windows text controls. | |||
| // | |||
| // | |||
| // | |||
| // LICENSE | |||
| // | |||
| @@ -192,20 +192,20 @@ | |||
| // call this with the mouse x,y on a mouse down; it will update the cursor | |||
| // and reset the selection start/end to the cursor point. the x,y must | |||
| // be relative to the text widget, with (0,0) being the top left. | |||
| // | |||
| // | |||
| // drag: | |||
| // call this with the mouse x,y on a mouse drag/up; it will update the | |||
| // cursor and the selection end point | |||
| // | |||
| // | |||
| // cut: | |||
| // call this to delete the current selection; returns true if there was | |||
| // one. you should FIRST copy the current selection to the system paste buffer. | |||
| // (To copy, just copy the current selection out of the string yourself.) | |||
| // | |||
| // | |||
| // paste: | |||
| // call this to paste text at the current cursor point or over the current | |||
| // selection if there is one. | |||
| // | |||
| // | |||
| // key: | |||
| // call this for keyboard inputs sent to the textfield. you can use it | |||
| // for "key down" events or for "translated" key events. if you need to | |||
| @@ -214,7 +214,7 @@ | |||
| // various definitions like STB_TEXTEDIT_K_LEFT have the is-key-event bit | |||
| // set, and make STB_TEXTEDIT_KEYTOCHAR check that the is-key-event bit is | |||
| // clear. | |||
| // | |||
| // | |||
| // When rendering, you can read the cursor position and selection state from | |||
| // the STB_TexteditState. | |||
| // | |||
| @@ -699,7 +699,7 @@ retry: | |||
| state->insert_mode = !state->insert_mode; | |||
| break; | |||
| #endif | |||
| case STB_TEXTEDIT_K_UNDO: | |||
| stb_text_undo(str, state); | |||
| state->has_preferred_x = 0; | |||
| @@ -714,7 +714,7 @@ retry: | |||
| // if currently there's a selection, move cursor to start of selection | |||
| if (STB_TEXT_HAS_SELECTION(state)) | |||
| stb_textedit_move_to_first(state); | |||
| else | |||
| else | |||
| if (state->cursor > 0) | |||
| --state->cursor; | |||
| state->has_preferred_x = 0; | |||
| @@ -751,7 +751,7 @@ retry: | |||
| break; | |||
| case STB_TEXTEDIT_K_WORDRIGHT: | |||
| if (STB_TEXT_HAS_SELECTION(state)) | |||
| if (STB_TEXT_HAS_SELECTION(state)) | |||
| stb_textedit_move_to_last(str, state); | |||
| else { | |||
| state->cursor = stb_textedit_move_to_word_next(str, state); | |||
| @@ -839,7 +839,7 @@ retry: | |||
| } | |||
| break; | |||
| } | |||
| case STB_TEXTEDIT_K_UP: | |||
| case STB_TEXTEDIT_K_UP | STB_TEXTEDIT_K_SHIFT: { | |||
| StbFindState find; | |||
| @@ -916,7 +916,7 @@ retry: | |||
| } | |||
| state->has_preferred_x = 0; | |||
| break; | |||
| case STB_TEXTEDIT_K_TEXTSTART: | |||
| state->cursor = state->select_start = state->select_end = 0; | |||
| state->has_preferred_x = 0; | |||
| @@ -927,7 +927,7 @@ retry: | |||
| state->select_start = state->select_end = 0; | |||
| state->has_preferred_x = 0; | |||
| break; | |||
| case STB_TEXTEDIT_K_TEXTSTART | STB_TEXTEDIT_K_SHIFT: | |||
| stb_textedit_prep_selection_at_cursor(state); | |||
| state->cursor = state->select_end = 0; | |||
| @@ -28,7 +28,7 @@ | |||
| // "Zer" on mollyrocket (with fix) | |||
| // Cass Everitt | |||
| // stoiko (Haemimont Games) | |||
| // Brian Hook | |||
| // Brian Hook | |||
| // Walter van Niftrik | |||
| // David Gow | |||
| // David Given | |||
| @@ -209,7 +209,7 @@ | |||
| // Curve tesselation 120 LOC \__ 550 LOC Bitmap creation | |||
| // Bitmap management 100 LOC / | |||
| // Baked bitmap interface 70 LOC / | |||
| // Font name matching & access 150 LOC ---- 150 | |||
| // Font name matching & access 150 LOC ---- 150 | |||
| // C runtime library abstraction 60 LOC ---- 60 | |||
| @@ -293,7 +293,7 @@ int main(int argc, char **argv) | |||
| } | |||
| return 0; | |||
| } | |||
| #endif | |||
| #endif | |||
| // | |||
| // Output: | |||
| // | |||
| @@ -307,9 +307,9 @@ int main(int argc, char **argv) | |||
| // :@@. M@M | |||
| // @@@o@@@@ | |||
| // :M@@V:@@. | |||
| // | |||
| // | |||
| ////////////////////////////////////////////////////////////////////////////// | |||
| // | |||
| // | |||
| // Complete program: print "Hello World!" banner, with bugs | |||
| // | |||
| #if 0 | |||
| @@ -555,7 +555,7 @@ STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, stbtt_fo | |||
| STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *spc, stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects); | |||
| // Those functions are called by stbtt_PackFontRanges(). If you want to | |||
| // pack multiple fonts or custom data into a same texture, you may copy | |||
| // the contents of stbtt_PackFontRanges() and create a custom version | |||
| // the contents of stbtt_PackFontRanges() and create a custom version | |||
| // using those functions. | |||
| STBTT_DEF void stbtt_PackSetOversampling(stbtt_pack_context *spc, unsigned int h_oversample, unsigned int v_oversample); | |||
| @@ -1296,7 +1296,7 @@ STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, s | |||
| if (i != 0) | |||
| num_vertices = stbtt__close_shape(vertices, num_vertices, was_off, start_off, sx,sy,scx,scy,cx,cy); | |||
| // now start the new one | |||
| // now start the new one | |||
| start_off = !(flags & 1); | |||
| if (start_off) { | |||
| // if we start off with an off-curve point, then when we need to find a point on the curve | |||
| @@ -1349,7 +1349,7 @@ STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, s | |||
| int comp_num_verts = 0, i; | |||
| stbtt_vertex *comp_verts = 0, *tmp = 0; | |||
| float mtx[6] = {1,0,0,1,0,0}, m, n; | |||
| flags = ttSHORT(comp); comp+=2; | |||
| gidx = ttSHORT(comp); comp+=2; | |||
| @@ -1379,7 +1379,7 @@ STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, s | |||
| mtx[2] = ttSHORT(comp)/16384.0f; comp+=2; | |||
| mtx[3] = ttSHORT(comp)/16384.0f; comp+=2; | |||
| } | |||
| // Find transformation scales. | |||
| m = (float) STBTT_sqrt(mtx[0]*mtx[0] + mtx[1]*mtx[1]); | |||
| n = (float) STBTT_sqrt(mtx[2]*mtx[2] + mtx[3]*mtx[3]); | |||
| @@ -1626,7 +1626,7 @@ static void stbtt__fill_active_edges(unsigned char *scanline, int len, stbtt__ac | |||
| } | |||
| } | |||
| } | |||
| e = e->next; | |||
| } | |||
| } | |||
| @@ -1916,7 +1916,7 @@ STBTT_DEF unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info | |||
| { | |||
| int ix0,iy0,ix1,iy1; | |||
| stbtt__bitmap gbm; | |||
| stbtt_vertex *vertices; | |||
| stbtt_vertex *vertices; | |||
| int num_verts = stbtt_GetGlyphShape(info, glyph, &vertices); | |||
| if (scale_x == 0) scale_x = scale_y; | |||
| @@ -1936,7 +1936,7 @@ STBTT_DEF unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info | |||
| if (height) *height = gbm.h; | |||
| if (xoff ) *xoff = ix0; | |||
| if (yoff ) *yoff = iy0; | |||
| if (gbm.w && gbm.h) { | |||
| gbm.pixels = (unsigned char *) STBTT_malloc(gbm.w * gbm.h, info->userdata); | |||
| if (gbm.pixels) { | |||
| @@ -1947,7 +1947,7 @@ STBTT_DEF unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info | |||
| } | |||
| STBTT_free(vertices, info->userdata); | |||
| return gbm.pixels; | |||
| } | |||
| } | |||
| STBTT_DEF unsigned char *stbtt_GetGlyphBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int glyph, int *width, int *height, int *xoff, int *yoff) | |||
| { | |||
| @@ -1959,7 +1959,7 @@ STBTT_DEF void stbtt_MakeGlyphBitmapSubpixel(const stbtt_fontinfo *info, unsigne | |||
| int ix0,iy0; | |||
| stbtt_vertex *vertices; | |||
| int num_verts = stbtt_GetGlyphShape(info, glyph, &vertices); | |||
| stbtt__bitmap gbm; | |||
| stbtt__bitmap gbm; | |||
| stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale_x, scale_y, shift_x, shift_y, &ix0,&iy0,0,0); | |||
| gbm.pixels = output; | |||
| @@ -1981,7 +1981,7 @@ STBTT_DEF void stbtt_MakeGlyphBitmap(const stbtt_fontinfo *info, unsigned char * | |||
| STBTT_DEF unsigned char *stbtt_GetCodepointBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint, int *width, int *height, int *xoff, int *yoff) | |||
| { | |||
| return stbtt_GetGlyphBitmapSubpixel(info, scale_x, scale_y,shift_x,shift_y, stbtt_FindGlyphIndex(info,codepoint), width,height,xoff,yoff); | |||
| } | |||
| } | |||
| STBTT_DEF void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint) | |||
| { | |||
| @@ -1991,7 +1991,7 @@ STBTT_DEF void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *info, uns | |||
| STBTT_DEF unsigned char *stbtt_GetCodepointBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int codepoint, int *width, int *height, int *xoff, int *yoff) | |||
| { | |||
| return stbtt_GetCodepointBitmapSubpixel(info, scale_x, scale_y, 0.0f,0.0f, codepoint, width,height,xoff,yoff); | |||
| } | |||
| } | |||
| STBTT_DEF void stbtt_MakeCodepointBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int codepoint) | |||
| { | |||
| @@ -2120,7 +2120,7 @@ static void stbrp_init_target(stbrp_context *con, int pw, int ph, stbrp_node *no | |||
| con->y = 0; | |||
| con->bottom_y = 0; | |||
| STBTT__NOTUSED(nodes); | |||
| STBTT__NOTUSED(num_nodes); | |||
| STBTT__NOTUSED(num_nodes); | |||
| } | |||
| static void stbrp_pack_rects(stbrp_context *con, stbrp_rect *rects, int num_rects) | |||
| @@ -2332,8 +2332,8 @@ STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, stbtt_fon | |||
| float scale = fh > 0 ? stbtt_ScaleForPixelHeight(info, fh) : stbtt_ScaleForMappingEmToPixels(info, -fh); | |||
| for (j=0; j < ranges[i].num_chars_in_range; ++j) { | |||
| int x0,y0,x1,y1; | |||
| int glyph = stbtt_FindGlyphIndex(info,ranges[i].first_unicode_char_in_range + j); | |||
| if (glyph) { | |||
| int glyph = stbtt_FindGlyphIndex(info,ranges[i].first_unicode_char_in_range + j); | |||
| if (glyph) { | |||
| stbtt_GetGlyphBitmapBoxSubpixel(info,glyph, | |||
| scale * spc->h_oversample, | |||
| scale * spc->v_oversample, | |||
| @@ -2341,10 +2341,10 @@ STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, stbtt_fon | |||
| &x0,&y0,&x1,&y1); | |||
| rects[k].w = (stbrp_coord) (x1-x0 + spc->padding + spc->h_oversample-1); | |||
| rects[k].h = (stbrp_coord) (y1-y0 + spc->padding + spc->v_oversample-1); | |||
| } else { | |||
| } else { | |||
| rects[k].w = rects[k].h = 1; | |||
| } | |||
| ++k; | |||
| ++k; | |||
| } | |||
| } | |||
| @@ -2440,7 +2440,7 @@ STBTT_DEF int stbtt_PackFontRanges(stbtt_pack_context *spc, unsigned char *fontd | |||
| n = 0; | |||
| for (i=0; i < num_ranges; ++i) | |||
| n += ranges[i].num_chars_in_range; | |||
| rects = (stbrp_rect *) STBTT_malloc(sizeof(*rects) * n, spc->user_allocator_context); | |||
| if (rects == NULL) | |||
| return 0; | |||
| @@ -2450,7 +2450,7 @@ STBTT_DEF int stbtt_PackFontRanges(stbtt_pack_context *spc, unsigned char *fontd | |||
| n = stbtt_PackFontRangesGatherRects(spc, &info, ranges, num_ranges, rects); | |||
| stbrp_pack_rects(context, rects, n); | |||
| return_value = stbtt_PackFontRangesRenderIntoRects(spc, &info, ranges, num_ranges, rects); | |||
| return return_value; | |||
| @@ -2501,7 +2501,7 @@ STBTT_DEF void stbtt_GetPackedQuad(stbtt_packedchar *chardata, int pw, int ph, i | |||
| // | |||
| // check if a utf8 string contains a prefix which is the utf16 string; if so return length of matching utf8 string | |||
| static stbtt_int32 stbtt__CompareUTF8toUTF16_bigendian_prefix(const stbtt_uint8 *s1, stbtt_int32 len1, const stbtt_uint8 *s2, stbtt_int32 len2) | |||
| static stbtt_int32 stbtt__CompareUTF8toUTF16_bigendian_prefix(const stbtt_uint8 *s1, stbtt_int32 len1, const stbtt_uint8 *s2, stbtt_int32 len2) | |||
| { | |||
| stbtt_int32 i=0; | |||
| @@ -2540,7 +2540,7 @@ static stbtt_int32 stbtt__CompareUTF8toUTF16_bigendian_prefix(const stbtt_uint8 | |||
| return i; | |||
| } | |||
| STBTT_DEF int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len1, const char *s2, int len2) | |||
| STBTT_DEF int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len1, const char *s2, int len2) | |||
| { | |||
| return len1 == stbtt__CompareUTF8toUTF16_bigendian_prefix((const stbtt_uint8*) s1, len1, (const stbtt_uint8*) s2, len2); | |||
| } | |||
| @@ -279,7 +279,7 @@ struct vec_t<T,2> | |||
| { | |||
| struct { T x, y; }; /* axis */ | |||
| struct { T r, g; }; /* red, green */ | |||
| struct { T s, t; }; | |||
| struct { T s, t; }; | |||
| #if !_DOXYGEN_SKIP_ME | |||
| vec_t<T, 2, 9000> const xx, rr, ss/**/, ww; | |||
| @@ -83,7 +83,7 @@ void BaseThreadManager::StopThreads(int nb) | |||
| ThreadJob stop_job(ThreadJobType::THREAD_STOP); | |||
| for (int i = 0; i < nb; i++) | |||
| m_jobqueue.push(&stop_job); | |||
| //... Wait for them to quit. | |||
| for (int i = 0; i < nb; i++) | |||
| m_donequeue.pop(); | |||
| @@ -49,7 +49,7 @@ public: | |||
| /* Old style: path to PNG file */ | |||
| TileSet(char const *path, ivec2 size, ivec2 count); | |||
| TileSet(char const *path, Image* image, ivec2 size, ivec2 count); | |||
| virtual ~TileSet(); | |||
| protected: | |||