commit
e40630ec6d
|
|
@ -55,7 +55,7 @@ DebugActor::DebugActor()
|
||||||
comma_locale_ = std::locale(std::locale(), new comma_numpunct);
|
comma_locale_ = std::locale(std::locale(), new comma_numpunct);
|
||||||
|
|
||||||
background_brush_ = memory::New<Brush>();
|
background_brush_ = memory::New<Brush>();
|
||||||
background_brush_->SetColor(Color(0.0f, 0.0f, 0.0f, 0.7f));
|
background_brush_->SetColor(Color::Rgba(0x000000, 0.7f));
|
||||||
|
|
||||||
BrushPtr fill_brush = memory::New<Brush>();
|
BrushPtr fill_brush = memory::New<Brush>();
|
||||||
fill_brush->SetColor(Color::White);
|
fill_brush->SetColor(Color::White);
|
||||||
|
|
|
||||||
|
|
@ -51,9 +51,9 @@ enum class CursorType
|
||||||
*/
|
*/
|
||||||
struct Resolution
|
struct Resolution
|
||||||
{
|
{
|
||||||
uint32_t width; ///< 分辨率宽度
|
uint32_t width = 0; ///< 分辨率宽度
|
||||||
uint32_t height; ///< 分辨率高度
|
uint32_t height = 0; ///< 分辨率高度
|
||||||
uint32_t refresh_rate; ///< 刷新率
|
uint32_t refresh_rate = 0; ///< 刷新率
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -249,28 +249,27 @@ void WindowWin32Impl::Init(const WindowConfig& config)
|
||||||
HMONITOR monitor = ::MonitorFromPoint(POINT{ 0, 0 }, MONITOR_DEFAULTTOPRIMARY);
|
HMONITOR monitor = ::MonitorFromPoint(POINT{ 0, 0 }, MONITOR_DEFAULTTOPRIMARY);
|
||||||
|
|
||||||
// Get the target monitor info
|
// Get the target monitor info
|
||||||
MONITORINFOEXA monitor_info_ex;
|
MONITORINFOEXA monitor_info;
|
||||||
memset(&monitor_info_ex, 0, sizeof(MONITORINFOEXA));
|
memset(&monitor_info, 0, sizeof(MONITORINFOEXA));
|
||||||
monitor_info_ex.cbSize = sizeof(MONITORINFOEXA);
|
monitor_info.cbSize = sizeof(MONITORINFOEXA);
|
||||||
::GetMonitorInfoA(monitor, &monitor_info_ex);
|
::GetMonitorInfoA(monitor, &monitor_info);
|
||||||
|
|
||||||
// Save the device name
|
// Save the device name
|
||||||
device_name_ = monitor_info_ex.szDevice;
|
device_name_ = monitor_info.szDevice;
|
||||||
|
|
||||||
uint32_t screenw = monitor_info_ex.rcWork.right - monitor_info_ex.rcWork.left;
|
uint32_t screenw = monitor_info.rcWork.right - monitor_info.rcWork.left;
|
||||||
uint32_t screenh = monitor_info_ex.rcWork.bottom - monitor_info_ex.rcWork.top;
|
uint32_t screenh = monitor_info.rcWork.bottom - monitor_info.rcWork.top;
|
||||||
|
|
||||||
uint32_t win_width, win_height;
|
uint32_t win_width, win_height;
|
||||||
AdjustWindow(config.width, config.height, GetStyle(), &win_width, &win_height);
|
AdjustWindow(config.width, config.height, GetStyle(), &win_width, &win_height);
|
||||||
|
|
||||||
int left = monitor_info_ex.rcWork.left + (screenw - win_width) / 2;
|
int left = monitor_info.rcWork.left + (screenw - win_width) / 2;
|
||||||
int top = monitor_info_ex.rcWork.top + (screenh - win_height) / 2;
|
int top = monitor_info.rcWork.top + (screenh - win_height) / 2;
|
||||||
|
|
||||||
width_ = win_width;
|
width_ = win_width;
|
||||||
height_ = win_height;
|
height_ = win_height;
|
||||||
resizable_ = config.resizable;
|
resizable_ = config.resizable;
|
||||||
is_fullscreen_ = config.fullscreen;
|
is_fullscreen_ = config.fullscreen;
|
||||||
resolution_ = Resolution{ width_, height_, 0 };
|
|
||||||
|
|
||||||
handle_ = ::CreateWindowExA(0, "KiwanoAppWnd", config.title.c_str(), GetStyle(), left, top, width_, height_,
|
handle_ = ::CreateWindowExA(0, "KiwanoAppWnd", config.title.c_str(), GetStyle(), left, top, width_, height_,
|
||||||
nullptr, nullptr, hinst, nullptr);
|
nullptr, nullptr, hinst, nullptr);
|
||||||
|
|
@ -293,14 +292,25 @@ void WindowWin32Impl::Init(const WindowConfig& config)
|
||||||
if (is_fullscreen_)
|
if (is_fullscreen_)
|
||||||
{
|
{
|
||||||
MONITORINFOEXA info = GetMoniterInfoEx(handle_);
|
MONITORINFOEXA info = GetMoniterInfoEx(handle_);
|
||||||
int x = (int)info.rcMonitor.left;
|
|
||||||
int y = (int)info.rcMonitor.top;
|
int x = (int)info.rcMonitor.left;
|
||||||
int cx = (int)(info.rcMonitor.right - info.rcMonitor.left);
|
int y = (int)info.rcMonitor.top;
|
||||||
int cy = (int)(info.rcMonitor.bottom - info.rcMonitor.top);
|
int cx = (int)(info.rcMonitor.right - info.rcMonitor.left);
|
||||||
|
int cy = (int)(info.rcMonitor.bottom - info.rcMonitor.top);
|
||||||
|
|
||||||
// Top the window
|
// Top the window
|
||||||
::SetWindowPos(handle_, HWND_TOPMOST, x, y, cx, cy, SWP_NOACTIVATE);
|
::SetWindowPos(handle_, HWND_TOPMOST, x, y, cx, cy, SWP_NOACTIVATE);
|
||||||
::ShowWindow(handle_, SW_SHOWNORMAL);
|
::ShowWindow(handle_, SW_SHOWNORMAL);
|
||||||
|
|
||||||
|
resolution_.width = config.width;
|
||||||
|
resolution_.height = config.height;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
RECT client_area;
|
||||||
|
::GetClientRect(handle_, &client_area);
|
||||||
|
resolution_.width = uint32_t(client_area.right - client_area.left);
|
||||||
|
resolution_.height = uint32_t(client_area.bottom - client_area.top);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ const uint32_t GREEN_MASK = 0xff << GREEN_SHIFT;
|
||||||
const uint32_t BLUE_MASK = 0xff << BLUE_SHIFT;
|
const uint32_t BLUE_MASK = 0xff << BLUE_SHIFT;
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
const Color Color::Transparent = Color(0.f, 0.f, 0.f, 0.f);
|
const Color Color::Transparent = Color(0, 0, 0, 0.f);
|
||||||
|
|
||||||
Color::Color()
|
Color::Color()
|
||||||
: r(0)
|
: r(0)
|
||||||
|
|
@ -43,30 +43,14 @@ Color::Color()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Color::Color(float r, float g, float b)
|
Color::Color(uint32_t r, uint32_t g, uint32_t b, float alpha)
|
||||||
: r(r)
|
: r(r / 255.0f)
|
||||||
, g(g)
|
, g(g / 255.0f)
|
||||||
, b(b)
|
, b(b / 255.0f)
|
||||||
, a(1.f)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
Color::Color(float r, float g, float b, float alpha)
|
|
||||||
: r(r)
|
|
||||||
, g(g)
|
|
||||||
, b(b)
|
|
||||||
, a(alpha)
|
, a(alpha)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Color::Color(uint32_t rgb)
|
|
||||||
: r(((rgb & RED_MASK) >> RED_SHIFT) / 255.f)
|
|
||||||
, g(((rgb & GREEN_MASK) >> GREEN_SHIFT) / 255.f)
|
|
||||||
, b(((rgb & BLUE_MASK) >> BLUE_SHIFT) / 255.f)
|
|
||||||
, a(1.f)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
Color::Color(uint32_t rgb, float alpha)
|
Color::Color(uint32_t rgb, float alpha)
|
||||||
: r(((rgb & RED_MASK) >> RED_SHIFT) / 255.f)
|
: r(((rgb & RED_MASK) >> RED_SHIFT) / 255.f)
|
||||||
, g(((rgb & GREEN_MASK) >> GREEN_SHIFT) / 255.f)
|
, g(((rgb & GREEN_MASK) >> GREEN_SHIFT) / 255.f)
|
||||||
|
|
@ -75,7 +59,7 @@ Color::Color(uint32_t rgb, float alpha)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Color Color::Rgb(float r, float g, float b)
|
Color Color::Rgb(uint32_t r, uint32_t g, uint32_t b)
|
||||||
{
|
{
|
||||||
return Color::Rgba(r, g, b, 1.0f);
|
return Color::Rgba(r, g, b, 1.0f);
|
||||||
}
|
}
|
||||||
|
|
@ -85,7 +69,7 @@ Color Color::Rgb(uint32_t rgb)
|
||||||
return Color::Rgba(rgb, 1.0f);
|
return Color::Rgba(rgb, 1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
Color Color::Rgba(float r, float g, float b, float alpha)
|
Color Color::Rgba(uint32_t r, uint32_t g, uint32_t b, float alpha)
|
||||||
{
|
{
|
||||||
return Color(r, g, b, alpha);
|
return Color(r, g, b, alpha);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,9 +34,8 @@ namespace kiwano
|
||||||
* @brief 颜色
|
* @brief 颜色
|
||||||
* @details
|
* @details
|
||||||
* 使用枚举表示颜色: @code Color blue = Color::Blue; @endcode
|
* 使用枚举表示颜色: @code Color blue = Color::Blue; @endcode
|
||||||
* 使用 RGB 表示一个颜色: @code Color red = Color(1.0f, 0.0f, 0.0f); @endcode
|
* 使用 RGB 表示一个颜色: @code Color red = Color(255, 0, 0); @endcode
|
||||||
* 使用 RGBA 表示一个带透明度的颜色: @code Color not_white = Color(1.0f, 1.0f,
|
* 使用 RGBA 表示一个带透明度的颜色: @code Color not_white = Color(255, 255, 255, 0.5f); @endcode
|
||||||
* 1.0f, 0.5f); @endcode
|
|
||||||
* 使用一个16进制整型值表示 RGB 颜色: @code Color black(0x000000); @endcode
|
* 使用一个16进制整型值表示 RGB 颜色: @code Color black(0x000000); @endcode
|
||||||
*/
|
*/
|
||||||
class KGE_API Color
|
class KGE_API Color
|
||||||
|
|
@ -44,41 +43,29 @@ class KGE_API Color
|
||||||
public:
|
public:
|
||||||
/// \~chinese
|
/// \~chinese
|
||||||
/// @brief 构造颜色
|
/// @brief 构造颜色
|
||||||
/// @details 默认颜色为 R: 0.0, G: 0.0, B: 0.0, A: 1.0
|
/// @details 默认颜色为 R: 0, G: 0, B: 0, A: 1.0
|
||||||
Color();
|
Color();
|
||||||
|
|
||||||
/// \~chinese
|
|
||||||
/// @brief 构造 RGB 颜色
|
|
||||||
/// @param r 红色值,范围 0.0 - 1.0
|
|
||||||
/// @param g 绿色值,范围 0.0 - 1.0
|
|
||||||
/// @param b 蓝色值,范围 0.0 - 1.0
|
|
||||||
Color(float r, float g, float b);
|
|
||||||
|
|
||||||
/// \~chinese
|
/// \~chinese
|
||||||
/// @brief 构造 RGBA 颜色
|
/// @brief 构造 RGBA 颜色
|
||||||
/// @param r 红色值,范围 0.0 - 1.0
|
/// @param r 红色值,范围 0 - 255
|
||||||
/// @param g 绿色值,范围 0.0 - 1.0
|
/// @param g 绿色值,范围 0 - 255
|
||||||
/// @param b 蓝色值,范围 0.0 - 1.0
|
/// @param b 蓝色值,范围 0 - 255
|
||||||
/// @param alpha Alpha值,范围 0.0 - 1.0
|
/// @param alpha Alpha值,范围 0.0 - 1.0
|
||||||
Color(float r, float g, float b, float alpha);
|
Color(uint32_t r, uint32_t g, uint32_t b, float alpha = 1.0f);
|
||||||
|
|
||||||
/// \~chinese
|
|
||||||
/// @brief 构造 RGB 颜色
|
|
||||||
/// @param rgb 使用16进制整形值表示 RGB颜色
|
|
||||||
Color(uint32_t rgb);
|
|
||||||
|
|
||||||
/// \~chinese
|
/// \~chinese
|
||||||
/// @brief 构造 RGBA 颜色
|
/// @brief 构造 RGBA 颜色
|
||||||
/// @param rgb 使用16进制整形值表示 RGB 颜色
|
/// @param rgb 使用16进制整形值表示 RGB 颜色
|
||||||
/// @param alpha Alpha值,范围 0.0 - 1.0
|
/// @param alpha Alpha值,范围 0.0 - 1.0
|
||||||
Color(uint32_t rgb, float alpha);
|
Color(uint32_t rgb, float alpha = 1.0f);
|
||||||
|
|
||||||
/// \~chinese
|
/// \~chinese
|
||||||
/// @brief 构造 RGB 颜色
|
/// @brief 构造 RGB 颜色
|
||||||
/// @param r 红色值,范围 0.0 - 1.0
|
/// @param r 红色值,范围 0 - 255
|
||||||
/// @param g 绿色值,范围 0.0 - 1.0
|
/// @param g 绿色值,范围 0 - 255
|
||||||
/// @param b 蓝色值,范围 0.0 - 1.0
|
/// @param b 蓝色值,范围 0 - 255
|
||||||
static Color Rgb(float r, float g, float b);
|
static Color Rgb(uint32_t r, uint32_t g, uint32_t b);
|
||||||
|
|
||||||
/// \~chinese
|
/// \~chinese
|
||||||
/// @brief 构造 RGB 颜色
|
/// @brief 构造 RGB 颜色
|
||||||
|
|
@ -87,11 +74,11 @@ public:
|
||||||
|
|
||||||
/// \~chinese
|
/// \~chinese
|
||||||
/// @brief 构造 RGBA 颜色
|
/// @brief 构造 RGBA 颜色
|
||||||
/// @param r 红色值,范围 0.0 - 1.0
|
/// @param r 红色值,范围 0 - 255
|
||||||
/// @param g 绿色值,范围 0.0 - 1.0
|
/// @param g 绿色值,范围 0 - 255
|
||||||
/// @param b 蓝色值,范围 0.0 - 1.0
|
/// @param b 蓝色值,范围 0 - 255
|
||||||
/// @param alpha Alpha值,范围 0.0 - 1.0
|
/// @param alpha Alpha值,范围 0.0 - 1.0
|
||||||
static Color Rgba(float r, float g, float b, float alpha);
|
static Color Rgba(uint32_t r, uint32_t g, uint32_t b, float alpha);
|
||||||
|
|
||||||
/// \~chinese
|
/// \~chinese
|
||||||
/// @brief 构造 RGBA 颜色
|
/// @brief 构造 RGBA 颜色
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue