Jelajahi Sumber

tools-imgui: cleanup

Daniele Bartolini 8 tahun lalu
induk
melakukan
e2942d8dee
2 mengubah file dengan 102 tambahan dan 140 penghapusan
  1. 17 17
      tools-imgui/imgui_context.cpp
  2. 85 123
      tools-imgui/level_editor.cpp

+ 17 - 17
tools-imgui/imgui_context.cpp

@@ -195,23 +195,23 @@ struct ImGuiContext
 
 		setupStyle(true);
 
-		io.KeyMap[ImGuiKey_Tab]        = (int)crown::KeyboardButton::TAB;
-		io.KeyMap[ImGuiKey_LeftArrow]  = (int)crown::KeyboardButton::LEFT;
-		io.KeyMap[ImGuiKey_RightArrow] = (int)crown::KeyboardButton::RIGHT;
-		io.KeyMap[ImGuiKey_UpArrow]    = (int)crown::KeyboardButton::UP;
-		io.KeyMap[ImGuiKey_DownArrow]  = (int)crown::KeyboardButton::DOWN;
-		io.KeyMap[ImGuiKey_Home]       = (int)crown::KeyboardButton::HOME;
-		io.KeyMap[ImGuiKey_End]        = (int)crown::KeyboardButton::END;
-		io.KeyMap[ImGuiKey_Delete]     = (int)crown::KeyboardButton::DEL;
-		io.KeyMap[ImGuiKey_Backspace]  = (int)crown::KeyboardButton::BACKSPACE;
-		io.KeyMap[ImGuiKey_Enter]      = (int)crown::KeyboardButton::ENTER;
-		io.KeyMap[ImGuiKey_Escape]     = (int)crown::KeyboardButton::ESCAPE;
-		io.KeyMap[ImGuiKey_A]          = (int)crown::KeyboardButton::A;
-		io.KeyMap[ImGuiKey_C]          = (int)crown::KeyboardButton::C;
-		io.KeyMap[ImGuiKey_V]          = (int)crown::KeyboardButton::V;
-		io.KeyMap[ImGuiKey_X]          = (int)crown::KeyboardButton::X;
-		io.KeyMap[ImGuiKey_Y]          = (int)crown::KeyboardButton::Y;
-		io.KeyMap[ImGuiKey_Z]          = (int)crown::KeyboardButton::Z;
+		io.KeyMap[ImGuiKey_Tab]        = crown::KeyboardButton::TAB;
+		io.KeyMap[ImGuiKey_LeftArrow]  = crown::KeyboardButton::LEFT;
+		io.KeyMap[ImGuiKey_RightArrow] = crown::KeyboardButton::RIGHT;
+		io.KeyMap[ImGuiKey_UpArrow]    = crown::KeyboardButton::UP;
+		io.KeyMap[ImGuiKey_DownArrow]  = crown::KeyboardButton::DOWN;
+		io.KeyMap[ImGuiKey_Home]       = crown::KeyboardButton::HOME;
+		io.KeyMap[ImGuiKey_End]        = crown::KeyboardButton::END;
+		io.KeyMap[ImGuiKey_Delete]     = crown::KeyboardButton::DEL;
+		io.KeyMap[ImGuiKey_Backspace]  = crown::KeyboardButton::BACKSPACE;
+		io.KeyMap[ImGuiKey_Enter]      = crown::KeyboardButton::ENTER;
+		io.KeyMap[ImGuiKey_Escape]     = crown::KeyboardButton::ESCAPE;
+		io.KeyMap[ImGuiKey_A]          = crown::KeyboardButton::A;
+		io.KeyMap[ImGuiKey_C]          = crown::KeyboardButton::C;
+		io.KeyMap[ImGuiKey_V]          = crown::KeyboardButton::V;
+		io.KeyMap[ImGuiKey_X]          = crown::KeyboardButton::X;
+		io.KeyMap[ImGuiKey_Y]          = crown::KeyboardButton::Y;
+		io.KeyMap[ImGuiKey_Z]          = crown::KeyboardButton::Z;
 
 		u_imageLodEnabled = bgfx::createUniform("u_imageLodEnabled", bgfx::UniformType::Vec4);
 

+ 85 - 123
tools-imgui/level_editor.cpp

@@ -1083,160 +1083,122 @@ bool tool_process_events()
 		switch (event.type)
 		{
 		case OsEventType::BUTTON:
+			switch (event.button.device_id)
 			{
-				const ButtonEvent& ev = event.button;
-				switch (ev.device_id)
+			case crown::InputDeviceType::KEYBOARD:
+				io.KeyCtrl = ((event.button.button_num == crown::KeyboardButton::CTRL_LEFT)
+					|| (event.button.button_num == crown::KeyboardButton::CTRL_RIGHT)) && event.button.pressed;
+				io.KeyShift = ((event.button.button_num == crown::KeyboardButton::SHIFT_LEFT)
+					|| (event.button.button_num == crown::KeyboardButton::SHIFT_RIGHT)) && event.button.pressed;
+				io.KeyAlt = ((event.button.button_num == crown::KeyboardButton::ALT_LEFT)
+					|| (event.button.button_num == crown::KeyboardButton::ALT_RIGHT)) && event.button.pressed;
+				io.KeySuper = ((event.button.button_num == crown::KeyboardButton::SUPER_LEFT)
+					|| (event.button.button_num == crown::KeyboardButton::SUPER_RIGHT)) && event.button.pressed;
+
+				io.KeysDown[event.button.button_num] = event.button.pressed;
+
+				if (!io.WantCaptureKeyboard)
 				{
-				case crown::InputDeviceType::KEYBOARD:
-					io.KeyCtrl = ((ev.button_num == crown::KeyboardButton::CTRL_LEFT)
-						|| (ev.button_num == crown::KeyboardButton::CTRL_RIGHT)) && ev.pressed;
-					io.KeyShift = ((ev.button_num == crown::KeyboardButton::SHIFT_LEFT)
-						|| (ev.button_num == crown::KeyboardButton::SHIFT_RIGHT)) && ev.pressed;
-					io.KeyAlt = ((ev.button_num == crown::KeyboardButton::ALT_LEFT)
-						|| (ev.button_num == crown::KeyboardButton::ALT_RIGHT)) && ev.pressed;
-					io.KeySuper = ((ev.button_num == crown::KeyboardButton::SUPER_LEFT)
-						|| (ev.button_num == crown::KeyboardButton::SUPER_RIGHT)) && ev.pressed;
-
-					io.KeysDown[crown::KeyboardButton::TAB] = (ev.button_num == crown::KeyboardButton::TAB) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::LEFT] = (ev.button_num == crown::KeyboardButton::LEFT) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::RIGHT] = (ev.button_num == crown::KeyboardButton::RIGHT) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::UP] = (ev.button_num == crown::KeyboardButton::UP) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::DOWN] = (ev.button_num == crown::KeyboardButton::DOWN) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::PAGE_UP] = (ev.button_num == crown::KeyboardButton::PAGE_UP) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::PAGE_DOWN] = (ev.button_num == crown::KeyboardButton::PAGE_DOWN) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::HOME] = (ev.button_num == crown::KeyboardButton::HOME) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::END] = (ev.button_num == crown::KeyboardButton::END) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::DEL] = (ev.button_num == crown::KeyboardButton::DEL) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::BACKSPACE] = (ev.button_num == crown::KeyboardButton::BACKSPACE) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::ENTER] = (ev.button_num == crown::KeyboardButton::ENTER) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::ESCAPE] = (ev.button_num == crown::KeyboardButton::ESCAPE) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::A] = (ev.button_num == crown::KeyboardButton::A) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::C] = (ev.button_num == crown::KeyboardButton::C) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::V] = (ev.button_num == crown::KeyboardButton::V) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::X] = (ev.button_num == crown::KeyboardButton::X) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::Y] = (ev.button_num == crown::KeyboardButton::Y) && ev.pressed;
-					io.KeysDown[crown::KeyboardButton::Z] = (ev.button_num == crown::KeyboardButton::Z) && ev.pressed;
-
-					if (!io.WantCaptureKeyboard)
+					if (event.button.pressed)
 					{
-						if (ev.pressed)
-						{
-							if (ev.button_num == crown::KeyboardButton::W)
-								tool::keyboard_pressed(ss, 'w');
-							if (ev.button_num == crown::KeyboardButton::A)
-								tool::keyboard_pressed(ss, 'a');
-							if (ev.button_num == crown::KeyboardButton::S)
-								tool::keyboard_pressed(ss, 's');
-							if (ev.button_num == crown::KeyboardButton::D)
-								tool::keyboard_pressed(ss, 'd');
-						}
-						else
-						{
-							if (ev.button_num == crown::KeyboardButton::W)
-								tool::keyboard_released(ss, 'w');
-							if (ev.button_num == crown::KeyboardButton::A)
-								tool::keyboard_released(ss, 'a');
-							if (ev.button_num == crown::KeyboardButton::S)
-								tool::keyboard_released(ss, 's');
-							if (ev.button_num == crown::KeyboardButton::D)
-								tool::keyboard_released(ss, 'd');
-						}
+						if (event.button.button_num == crown::KeyboardButton::W)
+							tool::keyboard_pressed(ss, 'w');
+						if (event.button.button_num == crown::KeyboardButton::A)
+							tool::keyboard_pressed(ss, 'a');
+						if (event.button.button_num == crown::KeyboardButton::S)
+							tool::keyboard_pressed(ss, 's');
+						if (event.button.button_num == crown::KeyboardButton::D)
+							tool::keyboard_pressed(ss, 'd');
+					}
+					else
+					{
+						if (event.button.button_num == crown::KeyboardButton::W)
+							tool::keyboard_released(ss, 'w');
+						if (event.button.button_num == crown::KeyboardButton::A)
+							tool::keyboard_released(ss, 'a');
+						if (event.button.button_num == crown::KeyboardButton::S)
+							tool::keyboard_released(ss, 's');
+						if (event.button.button_num == crown::KeyboardButton::D)
+							tool::keyboard_released(ss, 'd');
 					}
+				}
+				break;
 
-					break;
+			case crown::InputDeviceType::MOUSE:
+				io.MouseDown[0] = (event.button.button_num == crown::MouseButton::LEFT) && event.button.pressed;
+				io.MouseDown[1] = (event.button.button_num == crown::MouseButton::RIGHT) && event.button.pressed;
+				io.MouseDown[2] = (event.button.button_num == crown::MouseButton::MIDDLE) && event.button.pressed;
 
-				case crown::InputDeviceType::MOUSE:
-					io.MouseDown[0] = (ev.button_num == crown::MouseButton::LEFT) && ev.pressed;
-					io.MouseDown[1] = (ev.button_num == crown::MouseButton::RIGHT) && ev.pressed;
-					io.MouseDown[2] = (ev.button_num == crown::MouseButton::MIDDLE) && ev.pressed;
+				if (!io.WantCaptureMouse)
+				{
+					ImVec2& mouse_curr = s_editor->_scene_view._mouse_curr;
+					mouse_curr.x = io.MousePos.x - s_editor->_scene_view._pos.x;
+					mouse_curr.y = io.MousePos.y - s_editor->_scene_view._pos.y;
+
+					tool::set_mouse_state(ss
+						, mouse_curr.x
+						, mouse_curr.y
+						, io.MouseDown[0]
+						, io.MouseDown[2]
+						, io.MouseDown[1]
+						);
 
-					if (!io.WantCaptureMouse)
+					if (event.button.button_num == crown::MouseButton::LEFT)
 					{
-						ImVec2& mouse_curr = s_editor->_scene_view._mouse_curr;
-						mouse_curr.x = io.MousePos.x - s_editor->_scene_view._pos.x;
-						mouse_curr.y = io.MousePos.y - s_editor->_scene_view._pos.y;
-
-						tool::set_mouse_state(ss
-							, mouse_curr.x
-							, mouse_curr.y
-							, io.MouseDown[0]
-							, io.MouseDown[2]
-							, io.MouseDown[1]
-							);
-
-						if (ev.button_num == crown::MouseButton::LEFT)
-						{
-							if (ev.pressed)
-								tool::mouse_down(ss, mouse_curr.x, mouse_curr.y);
-							else
-								tool::mouse_up(ss, mouse_curr.x, mouse_curr.y);
-						}
+						if (event.button.pressed)
+							tool::mouse_down(ss, mouse_curr.x, mouse_curr.y);
+						else
+							tool::mouse_up(ss, mouse_curr.x, mouse_curr.y);
 					}
-
-					break;
 				}
+				break;
 			}
 			break;
 
 		case OsEventType::AXIS:
+			switch(event.axis.device_id)
 			{
-				const AxisEvent& ev = event.axis;
-				switch(ev.device_id)
+			case InputDeviceType::MOUSE:
+				switch(event.axis.axis_num)
 				{
-				case InputDeviceType::MOUSE:
-					{
-						switch(ev.axis_num)
-						{
-						case crown::MouseAxis::CURSOR:
-							io.MousePos = ImVec2(ev.axis_x, ev.axis_y);
-
-							if (!io.WantCaptureMouse)
-							{
-								ImVec2& mouse_curr = s_editor->_scene_view._mouse_curr;
-								ImVec2& mouse_last = s_editor->_scene_view._mouse_last;
-
-								mouse_curr.x = io.MousePos.x - s_editor->_scene_view._pos.x;
-								mouse_curr.y = io.MousePos.y - s_editor->_scene_view._pos.y;
+				case crown::MouseAxis::CURSOR:
+					io.MousePos = ImVec2(event.axis.axis_x, event.axis.axis_y);
 
-								float delta_x = mouse_curr.x - mouse_last.x;
-								float delta_y = mouse_curr.y - mouse_last.y;
+					if (!io.WantCaptureMouse)
+					{
+						ImVec2& mouse_curr = s_editor->_scene_view._mouse_curr;
+						ImVec2& mouse_last = s_editor->_scene_view._mouse_last;
 
-								tool::mouse_move(ss, mouse_curr.x, mouse_curr.y, delta_x, delta_y);
+						mouse_curr.x = io.MousePos.x - s_editor->_scene_view._pos.x;
+						mouse_curr.y = io.MousePos.y - s_editor->_scene_view._pos.y;
 
-								mouse_last = mouse_curr;
-							}
+						float delta_x = mouse_curr.x - mouse_last.x;
+						float delta_y = mouse_curr.y - mouse_last.y;
 
-							break;
+						tool::mouse_move(ss, mouse_curr.x, mouse_curr.y, delta_x, delta_y);
 
-						case crown::MouseAxis::WHEEL:
-							io.MouseWheel += ev.axis_y;
+						mouse_last = mouse_curr;
+					}
+					break;
 
-							if (!io.WantCaptureMouse)
-							{
-								tool::mouse_wheel(ss, io.MouseWheel);
-							}
+				case crown::MouseAxis::WHEEL:
+					io.MouseWheel += event.axis.axis_y;
 
-							break;
-						}
-					}
+					if (!io.WantCaptureMouse)
+						tool::mouse_wheel(ss, io.MouseWheel);
+					break;
 				}
 			}
 			break;
 
 		case OsEventType::TEXT:
-			{
-				const TextEvent& ev = event.text;
-				io.AddInputCharactersUTF8((const char*) ev.utf8);
-			}
+			io.AddInputCharactersUTF8((const char*) event.text.utf8);
 			break;
 
 		case OsEventType::RESOLUTION:
-			{
-				const ResolutionEvent& ev = event.resolution;
-				_width  = ev.width;
-				_height = ev.height;
-				reset   = true;
-			}
+			_width  = event.resolution.width;
+			_height = event.resolution.height;
+			reset   = true;
 			break;
 
 		case OsEventType::EXIT: