dolphin/Source/Core/DolphinWX/Src/Main.h
Soren Jorvang d2910912a4 XInitThreads() must be the very first Xlib function called or else
some X state will have initialized mutexes and some won't, leading
to unpredictable results depending on the feature set compiled into
wxWidgets and so on.

wxGTK starts by calling Xlib functions indirectly through gdk very
early on, so we must hook into wxApp::Initialize().

I believe this should properly fix issue 1540. In case of problems,
please reopen that issue. If you see XLockMutex in a backtrace,
that's a pretty good indication.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7205 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-19 21:53:53 +00:00

51 lines
1.2 KiB
C++

// Copyright (C) 2003 Dolphin Project.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, version 2.0.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License 2.0 for more details.
// A copy of the GPL 2.0 should have been included with the program.
// If not, see http://www.gnu.org/licenses/
// Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
#ifndef __MAIN_H_
#define __MAIN_H_
#include "Frame.h"
// Define a new application
class CFrame;
class DolphinApp : public wxApp
{
public:
CFrame* GetCFrame();
private:
bool OnInit();
int OnExit();
void OnFatalException();
bool Initialize(int& c, wxChar **v);
void InitLanguageSupport();
void MacOpenFile(const wxString &fileName);
DECLARE_EVENT_TABLE()
wxTimer *m_afterinit;
bool BatchMode;
bool LoadFile;
wxString FileToLoad;
wxLocale *m_locale;
void AfterInit(wxTimerEvent& WXUNUSED(event));
};
DECLARE_APP(DolphinApp);
#endif