public static bool SetIcon(byte[] bgra, int width, int height, WindowIconKind kind, bool topRowFirst = false) { var hwnd = mainWindow; if (hwnd == IntPtr.Zero) { return(false); } var index = (int)kind; IntPtr icon; if (bgra != null) { icon = _SetIcon_cache[index].update(bgra, width, height, topRowFirst); if (icon == IntPtr.Zero) { return(false); } if (!_SetIcon_hasBaseIcon[index]) { _SetIcon_hasBaseIcon[index] = true; _SetIcon_baseIcon[index] = SendMessage(hwnd, 0x7F /*WM_GETICON*/, index, IntPtr.Zero); } } else { if (!_SetIcon_hasBaseIcon[index]) { return(true); } icon = _SetIcon_baseIcon[index]; } SendMessage(hwnd, 0x80 /*WM_SETICON*/, index, icon); return(true); }
public static bool SetIcon(Texture2D tex, WindowIconKind kind) { var hwnd = mainWindow; if (hwnd == IntPtr.Zero) { return(false); } var index = (int)kind; IntPtr icon; if (tex != null) { icon = _SetIcon_cache[index].update(tex); if (icon == IntPtr.Zero) { return(false); } if (!_SetIcon_hasBaseIcon[index]) { _SetIcon_hasBaseIcon[index] = true; _SetIcon_baseIcon[index] = SendMessage(hwnd, 0x7F /*WM_GETICON*/, index, IntPtr.Zero); } } else { if (!_SetIcon_hasBaseIcon[index]) { return(true); } icon = _SetIcon_baseIcon[index]; } SendMessage(hwnd, 0x80 /*WM_SETICON*/, index, icon); return(true); }