Merge pull request #2 from archshift/issue-7-fix

Fixes issues with building Citra on OSX
This commit is contained in:
bunnei 2014-05-19 21:46:57 -04:00
commit 204c6bfeca
21 changed files with 286 additions and 68 deletions

View file

@ -8,6 +8,23 @@ set(SRCS
main.cpp
config/controller_config.cpp
config/controller_config_util.cpp)
set (HEADERS
bootmanager.hxx
debugger/callstack.hxx
debugger/disassembler.hxx
debugger/ramview.hxx
debugger/registers.hxx
hotkeys.hxx
main.hxx
ui_callstack.h
ui_controller_config.h
ui_disassembler.h
ui_hotkeys.h
ui_main.h
ui_registers.h
version.h
config/controller_config.hxx
config/controller_config_util.hxx)
qt4_wrap_ui(UI_HDRS
debugger/callstack.ui
@ -32,7 +49,11 @@ qt4_wrap_cpp(MOC_SRCS
include_directories(${CMAKE_CURRENT_BINARY_DIR})
include_directories(./)
add_executable(citra-qt ${SRCS} ${MOC_SRCS} ${UI_HDRS})
target_link_libraries(citra-qt core common video_core qhexedit ${QT_LIBRARIES} ${OPENGL_LIBRARIES} ${SDL2_LIBRARY} rt GLEW ${GLFW_LIBRARIES})
add_executable(citra-qt ${SRCS} ${HEADERS} ${MOC_SRCS} ${UI_HDRS})
if (APPLE)
target_link_libraries(citra-qt core common video_core qhexedit iconv ${COREFOUNDATION_LIBRARY} ${QT_LIBRARIES} ${GLEW_LIBRARY} ${OPENGL_LIBRARIES})
else()
target_link_libraries(citra-qt core common video_core qhexedit ${QT_LIBRARIES} ${OPENGL_LIBRARIES} ${SDL2_LIBRARY} rt GLEW ${GLFW_LIBRARIES})
endif()
#install(TARGETS citra-qt RUNTIME DESTINATION ${bindir})

View file

@ -50,7 +50,7 @@ void EmuThread::run()
void EmuThread::Stop()
{
if (!isRunning())
if (!isRunning())
{
INFO_LOG(MASTER_LOG, "EmuThread::Stop called while emu thread wasn't running, returning...");
return;
@ -65,7 +65,7 @@ void EmuThread::Stop()
terminate();
wait(1000);
if (isRunning())
WARN_LOG(MASTER_LOG, "EmuThread STILL running, something is wrong here...");
WARN_LOG(MASTER_LOG, "EmuThread STILL running, something is wrong here...");
}
INFO_LOG(MASTER_LOG, "EmuThread stopped");
}
@ -76,9 +76,8 @@ void EmuThread::Stop()
class GGLWidgetInternal : public QGLWidget
{
public:
GGLWidgetInternal(GRenderWindow* parent) : QGLWidget(parent)
GGLWidgetInternal(QGLFormat fmt, GRenderWindow* parent) : QGLWidget(parent)
{
setAutoBufferSwap(false);
doneCurrent();
parent_ = parent;
}
@ -106,8 +105,13 @@ EmuThread& GRenderWindow::GetEmuThread()
GRenderWindow::GRenderWindow(QWidget* parent) : QWidget(parent), emu_thread(this)
{
// TODO: One of these flags might be interesting: WA_OpaquePaintEvent, WA_NoBackground, WA_DontShowOnScreen, WA_DeleteOnClose
child = new GGLWidgetInternal(this);
QGLFormat fmt;
fmt.setProfile(QGLFormat::CoreProfile);
fmt.setVersion(3,2);
fmt.setSampleBuffers(true);
fmt.setSamples(4);
child = new GGLWidgetInternal(fmt, this);
QBoxLayout* layout = new QHBoxLayout(this);
resize(VideoCore::kScreenTopWidth, VideoCore::kScreenTopHeight + VideoCore::kScreenBottomHeight);
layout->addWidget(child);
@ -147,12 +151,12 @@ void GRenderWindow::DoneCurrent()
void GRenderWindow::PollEvents() {
// TODO(ShizZy): Does this belong here? This is a reasonable place to update the window title
// from the main thread, but this should probably be in an event handler...
/*
static char title[128];
/*
static char title[128];
sprintf(title, "%s (FPS: %02.02f)", window_title_.c_str(),
video_core::g_renderer->current_fps());
setWindowTitle(title);
*/
*/
}
void GRenderWindow::BackupGeometry()
@ -185,26 +189,26 @@ QByteArray GRenderWindow::saveGeometry()
void GRenderWindow::keyPressEvent(QKeyEvent* event)
{
/*
bool key_processed = false;
/*
bool key_processed = false;
for (unsigned int channel = 0; channel < 4 && controller_interface(); ++channel)
if (controller_interface()->SetControllerStatus(channel, event->key(), input_common::GCController::PRESSED))
key_processed = true;
if (!key_processed)
QWidget::keyPressEvent(event);
*/
*/
}
void GRenderWindow::keyReleaseEvent(QKeyEvent* event)
{
/*
bool key_processed = false;
/*
bool key_processed = false;
for (unsigned int channel = 0; channel < 4 && controller_interface(); ++channel)
if (controller_interface()->SetControllerStatus(channel, event->key(), input_common::GCController::RELEASED))
key_processed = true;
if (!key_processed)
QWidget::keyPressEvent(event);
*/
*/
}