mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
fix icon stuff
This commit is contained in:
parent
71f9ef76a2
commit
bc412732bf
@ -16,8 +16,6 @@ ConfigureFn(config_wgldisplay) {
|
||||
init_libwgldisplay();
|
||||
}
|
||||
|
||||
string IconFileName = config_wgldisplay.GetString("win32-window-icon","");
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: init_libwgldisplay
|
||||
// Description: Initializes the library. This must be called at
|
||||
@ -43,3 +41,10 @@ init_libwgldisplay() {
|
||||
wglGraphicsWindow::get_class_type(),
|
||||
wglGraphicsWindow::make_wglGraphicsWindow);
|
||||
}
|
||||
|
||||
// cant use global var cleanly because global var static init executed after init_libwgl(), incorrectly reiniting var
|
||||
Filename get_icon_filename() {
|
||||
string iconname = config_wgldisplay.GetString("win32-window-icon","");
|
||||
return ExecutionEnvironment::expand_string(iconname);
|
||||
}
|
||||
|
||||
|
@ -7,11 +7,12 @@
|
||||
#define __CONFIG_WGLDISPLAY_H__
|
||||
|
||||
#include <pandabase.h>
|
||||
#include <filename.h>
|
||||
#include <notifyCategoryProxy.h>
|
||||
|
||||
NotifyCategoryDecl(wgldisplay, EXPCL_PANDAGL, EXPTP_PANDAGL);
|
||||
|
||||
extern string IconFileName;
|
||||
extern Filename get_icon_filename();
|
||||
|
||||
extern EXPCL_PANDAGL void init_libwgldisplay();
|
||||
|
||||
|
@ -38,8 +38,12 @@ wglGraphicsPipe::wglGraphicsPipe(const PipeSpecifier& spec)
|
||||
wc.lpszMenuName = NULL;
|
||||
wc.lpszClassName = "wglStandard";
|
||||
|
||||
if(!IconFileName.empty()) {
|
||||
wc.hIcon = (HICON) LoadImage(NULL, IconFileName.c_str(), IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
|
||||
string windows_icon_filename = get_icon_filename().to_os_specific();
|
||||
|
||||
if(!windows_icon_filename.empty()) {
|
||||
// Note: LoadImage seems to cause win2k internal heap corruption (outputdbgstr warnings)
|
||||
// if icon is more than 8bpp
|
||||
wc.hIcon = (HICON) LoadImage(NULL, windows_icon_filename.c_str(), IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
|
||||
} else {
|
||||
wc.hIcon = NULL; // use default app icon
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user