diff --git a/blackberry-qnx/bb10/RetroArch-Cascades.pro b/blackberry-qnx/bb10/RetroArch-Cascades.pro
index e147755860..e2c36e3e21 100644
--- a/blackberry-qnx/bb10/RetroArch-Cascades.pro
+++ b/blackberry-qnx/bb10/RetroArch-Cascades.pro
@@ -2,7 +2,24 @@ APP_NAME = RetroArch-Cascades
CONFIG += qt warn_on cascades10
-LIBS += -lscreen
-LIBS += -lbbcascadespickers
+LIBS += -lscreen -lbps -lOpenAL -lpng -lEGL -lGLESv2
+LIBS += -lbbcascadespickers -lbbdata
+
+DEFINES += HAVE_RGUI HAVE_NEON \
+ SINC_LOWER_QUALITY HAVE_RARCH_MAIN_IMPLEMENTATION \
+ HAVE_VID_CONTEXT HAVE_FBO HAVE_GRIFFIN __LIBRETRO__ \
+ HAVE_DYNAMIC HAVE_ZLIB __BLACKBERRY_QNX__ HAVE_OPENGLES \
+ PACKAGE_VERSION=\"0.9.8.4\" HAVE_OPENGLES2 HAVE_NULLINPUT \
+ HAVE_AL HAVE_THREADS WANT_MINIZ HAVE_OVERLAY HAVE_GLSL \
+ USING_GL20 HAVE_OPENGL __STDC_CONSTANT_MACROS HAVE_BB10
+
+INCLUDEPATH += ../../../../RetroArch
+
+QMAKE_CXXFLAGS +=
+QMAKE_CFLAGS += -Wc,-std=gnu99 -marm -mfpu=neon
+
+SOURCES += ../../../griffin/griffin.c \
+ ../../../audio/sinc_neon.S \
+ ../../../audio/utils_neon.S
include(config.pri)
diff --git a/blackberry-qnx/bb10/assets/MainMenu.qml b/blackberry-qnx/bb10/assets/MainMenu.qml
new file mode 100644
index 0000000000..4ee3b9aeaf
--- /dev/null
+++ b/blackberry-qnx/bb10/assets/MainMenu.qml
@@ -0,0 +1,108 @@
+import bb.cascades 1.0
+import bb.cascades.pickers 1.0
+
+Page {
+ actions: [
+ ActionItem {
+ title: "Play"
+ ActionBar.placement: ActionBarPlacement.OnBar
+ imageSource: "asset:///images/open.png"
+ onTriggered: {
+ if(RetroArch.rom == "" || RetroArch.core == "")
+ {
+ //Do something to focus on select rom box
+ }
+ else
+ {
+ RetroArch.startEmulator();
+ }
+ }
+ }
+ ]
+
+ titleBar: TitleBar {
+ id: titleBar
+ title: "RetroArch"
+ }
+
+ Container {
+ horizontalAlignment: HorizontalAlignment.Fill
+ verticalAlignment: VerticalAlignment.Fill
+ rightPadding: 20
+ leftPadding: 20
+
+ layout: DockLayout {}
+
+ Container {
+ preferredWidth: 680
+ horizontalAlignment: HorizontalAlignment.Center
+ verticalAlignment: VerticalAlignment.Center
+
+ ImageView
+ {
+ horizontalAlignment: HorizontalAlignment.Center
+ imageSource: "asset:///images/icon.png"
+ preferredWidth: 200
+ preferredHeight: 200
+ }
+
+ DropDown
+ {
+ id: _core
+ objectName: "dropdown_core"
+ horizontalAlignment: HorizontalAlignment.Center
+ title: "Core Selection"
+ //Handled in C++
+ }
+
+ Container {
+ horizontalAlignment: HorizontalAlignment.Center
+ preferredWidth: 680
+
+ layout: StackLayout {
+ orientation: LayoutOrientation.LeftToRight
+ }
+
+ //I like the look as a textbox
+ DropDown
+ {
+ id: romName
+ verticalAlignment: VerticalAlignment.Center
+ horizontalAlignment: HorizontalAlignment.Center
+ preferredWidth: 600
+ enabled: false
+ title: if(picker.selectedFile)
+ picker.selectedFile
+ else
+ "Rom Selection"
+ }
+
+ ImageButton {
+ horizontalAlignment: HorizontalAlignment.Right
+ defaultImageSource: "asset:///images/file.png"
+ onClicked: {
+ picker.open();
+ }
+ }
+ }
+ }
+ }
+ attachedObjects: [
+ FilePicker {
+ id: picker
+
+ property string selectedFile
+
+ title: "Rom Selector"
+ filter: { RetroArch.romExtensions.split("|") }
+ type: FileType.Other
+ directories: ["/accounts/1000/shared/documents/roms"]
+
+ onFileSelected: {
+ RetroArch.rom = selectedFiles[0];
+ selectedFile = RetroArch.rom.substr(RetroArch.rom.lastIndexOf('/')+1);
+ picker.directories = [RetroArch.rom.substr(0, RetroArch.rom.lastIndexOf('/'))];
+ }
+ }
+ ]
+}
diff --git a/blackberry-qnx/bb10/assets/coreInfo.json b/blackberry-qnx/bb10/assets/coreInfo.json
new file mode 100644
index 0000000000..2da92d8b12
--- /dev/null
+++ b/blackberry-qnx/bb10/assets/coreInfo.json
@@ -0,0 +1,42 @@
+{
+ "snes9x_next_libretro.so":{
+ "display_name":"SNES / Super Famicom",
+ "supported_extensions":"*.smc|*.fig|*.sfc|*.gd3|*.gd7|*.dx2|*.bsx|*.swc",
+ "corename":"SNES9x Next",
+ "manufacturer":"Nintendo",
+ "systemname":"Super Nintendo Entertainment System",
+ "default_overlay":"app/native/overlays/snes-landscape.cfg"
+ },
+ "genesis_plus_gx_libretro.so":{
+ "display_name":"Sega (MS/GG/MD/CD)",
+ "supported_extensions":"*.md|*.smd|*.gen|*.sms|*.gg|*.sg|*.bin|*.cue|*.ios",
+ "corename":"Genesis Plus GX",
+ "manufacturer":"Sega",
+ "systemname":"Sega (Various)",
+ "default_overlay":"app/native/overlays/genesis6-landscape.cfg"
+ },
+ "vba_next_libretro.so":{
+ "display_name":"Game Boy Advance",
+ "supported_extensions":"*.gba",
+ "corename":"VBA Next",
+ "manufacturer":"Nintendo",
+ "systemname":"Game Boy Advance",
+ "default_overlay":"app/native/overlays/box-gba.cfg"
+ },
+ "pcsx_rearmed_libretro.so":{
+ "display_name":"PlayStation1",
+ "supported_extensions":"*.bin|*.cue|*.img|*.mdf|*.pbp|*.cbn|*.toc",
+ "corename":"PCSX ReARMed",
+ "manufacturer":"Sony",
+ "systemname":"PlayStation",
+ "default_overlay":"app/native/overlays/psx-landscape.cfg"
+ },
+ "fb_alpha_libretro.so":{
+ "display_name":"Arcade",
+ "supported_extensions":"*.zip|*.ZIP",
+ "corename":"Final Burn Alpha",
+ "manufacturer":"Various",
+ "systemname":"Arcade (various)",
+ "default_overlay":"app/native/overlays/snes-landscape.cfg"
+ }
+}
diff --git a/blackberry-qnx/bb10/assets/main.qml b/blackberry-qnx/bb10/assets/main.qml
new file mode 100644
index 0000000000..ab8cd70a1c
--- /dev/null
+++ b/blackberry-qnx/bb10/assets/main.qml
@@ -0,0 +1,11 @@
+import bb.cascades 1.0
+import bb.cascades.pickers 1.0
+
+TabbedPane {
+ Tab {
+ MainMenu
+ {
+
+ }
+ }
+}
diff --git a/blackberry-qnx/bb10/assets/mainPage.qml b/blackberry-qnx/bb10/assets/mainPage.qml
deleted file mode 100644
index 66c9824cf7..0000000000
--- a/blackberry-qnx/bb10/assets/mainPage.qml
+++ /dev/null
@@ -1,116 +0,0 @@
-import bb.cascades 1.0
-import bb.cascades.pickers 1.0
-
-TabbedPane {
- Tab {
- Page {
- actions: [
- ActionItem {
- title: "Play"
- ActionBar.placement: ActionBarPlacement.OnBar
- imageSource: "asset:///images/open.png"
- onTriggered: {
- if(RetroArch.rom == "" || RetroArch.core == ""){
- //Do something to focus on select rom box
- } else {
- OrientationSupport.supportedDisplayOrientation =
- SupportedDisplayOrientation.DisplayLandscape;
- }
- }
- }
- ]
-
- titleBar: TitleBar {
- id: titleBar
- title: "RetroArch"
- }
-
- Container {
- horizontalAlignment: HorizontalAlignment.Fill
- verticalAlignment: VerticalAlignment.Fill
- rightPadding: 20
- leftPadding: 20
-
- layout: DockLayout {}
-
- Container {
- preferredWidth: 680
- horizontalAlignment: HorizontalAlignment.Center
- verticalAlignment: VerticalAlignment.Center
-
- ImageView
- {
- horizontalAlignment: HorizontalAlignment.Center
- imageSource: "asset:///images/icon.png"
- preferredWidth: 200
- preferredHeight: 200
- }
-
- DropDown
- {
- id: _core
- objectName: "dropdown_core"
- horizontalAlignment: HorizontalAlignment.Center
- title: "Core Selection"
- }
-
- Container {
- horizontalAlignment: HorizontalAlignment.Center
- preferredWidth: 680
-
- layout: StackLayout {
- orientation: LayoutOrientation.LeftToRight
- }
-
- DropDown
- {
- id: romName
- verticalAlignment: VerticalAlignment.Center
- horizontalAlignment: HorizontalAlignment.Center
- preferredWidth: 600
- enabled: false
- //hintText: "Select a ROM"
- title: if(picker.selectedFile)
- picker.selectedFile
- else
- "Rom Selection"
- }
-
- ImageButton {
- horizontalAlignment: HorizontalAlignment.Right
- defaultImageSource: "asset:///images/file.png"
- onClicked: {
- picker.open();
- }
- }
- }
- }
- }
- attachedObjects: [
- FilePicker {
- id: picker
-
- property string selectedFile
-
- title: "Rom Selector"
- filter: []
- type: FileType.Other
- directories: ["/accounts/1000/shared/documents/roms"]
-
- onFileSelected: {
- RetroArch.rom = selectedFiles[0];
- selectedFile = RetroArch.rom.substr(RetroArch.rom.lastIndexOf('/')+1);
- picker.directories = [RetroArch.rom.substr(0, RetroArch.rom.lastIndexOf('/'))];
- }
- }
- ]
- }
- }
- Tab {
- Page {
- Container {
-
- }
- }
- }
-}
diff --git a/blackberry-qnx/bb10/bar-descriptor.xml b/blackberry-qnx/bb10/bar-descriptor.xml
index dda123717e..e04a5c2f4d 100644
--- a/blackberry-qnx/bb10/bar-descriptor.xml
+++ b/blackberry-qnx/bb10/bar-descriptor.xml
@@ -54,6 +54,7 @@
+ icon.png
@@ -63,7 +64,11 @@
+ retroarch.cfg
+ lib
+ overlays
assets
+ icon.png
diff --git a/blackberry-qnx/bb10/src/RetroArch-Cascades.cpp b/blackberry-qnx/bb10/src/RetroArch-Cascades.cpp
index 0a2559644e..86f612013c 100644
--- a/blackberry-qnx/bb10/src/RetroArch-Cascades.cpp
+++ b/blackberry-qnx/bb10/src/RetroArch-Cascades.cpp
@@ -13,6 +13,13 @@
* limitations under the License.
*/
#include "RetroArch-Cascades.h"
+#include "general.h"
+#include "conf/config_file.h"
+#include "file.h"
+
+#ifdef HAVE_RGUI
+#include "frontend/menu/rgui.h"
+#endif
#include
#include
@@ -20,71 +27,284 @@
#include
#include
#include
+#include
+
+#include
+#include
+#include
+#include
#include
+#include
+#include
using namespace bb::cascades;
+using namespace bb::data;
+
+//Use after calling findCores
+#define GET_CORE_INFO(x, y) coreInfo[coreList[x]].toMap()[y].toString()
RetroArch::RetroArch()
{
- qmlRegisterType("bb.cascades.pickers", 1, 0, "FilePicker");
- qmlRegisterUncreatableType("bb.cascades.pickers", 1, 0, "FileType", "");
+ qmlRegisterType("bb.cascades.pickers", 1, 0, "FilePicker");
+ qmlRegisterUncreatableType("bb.cascades.pickers", 1, 0, "FileType", "");
- // Create a QML document and load the main UI QML file, using build patterns.
- QmlDocument *qml = QmlDocument::create("asset:///mainPage.qml");
+ // Create channel to signal threads on
+ chid = ChannelCreate(0);
+ coid = ConnectAttach(0, 0, chid, _NTO_SIDE_CHANNEL, 0);
- if (!qml->hasErrors()) {
+ bool res = connect(
+ OrientationSupport::instance(), SIGNAL(rotationCompleted()),
+ this, SLOT(onRotationCompleted()));
- // Set the context property we want to use from inside the QML document. Functions exposed
- // via Q_INVOKABLE will be found with this property and the name of the function.
- qml->setContextProperty("RetroArch", this);
+ rarch_main_clear_state();
- // The application Page is created from QML.
- AbstractPane *mAppPane = qml->createRootObject();
+ strlcpy(g_settings.libretro, "app/native/lib", sizeof(g_settings.libretro));
+ coreSelectedIndex = -1;
- if (mAppPane) {
+ QmlDocument *qml = QmlDocument::create("asset:///main.qml");
- Application::instance()->setScene(mAppPane);
+ if (!qml->hasErrors())
+ {
+ qml->setContextProperty("RetroArch", this);
- // Start the thread in which we render to the custom window.
- start();
- }
- }
+ AbstractPane *mAppPane = qml->createRootObject();
+
+ if (mAppPane)
+ {
+ //Get core DropDown reference to populate it in C++
+ coreSelection = mAppPane->findChild("dropdown_core");
+ connect(coreSelection, SIGNAL(selectedValueChanged(QVariant)), this, SLOT(onCoreSelected(QVariant)));
+ findCores();
+
+ Application::instance()->setScene(mAppPane);
+
+ // Start the thread in which we render to the custom window.
+ start();
+ }
+ }
}
RetroArch::~RetroArch()
{
- // Stop the thread.
- terminate();
- wait();
+ free(coreList);
}
+void RetroArch::aboutToQuit()
+{
+ recv_msg msg;
+
+ msg.code = RETROARCH_EXIT;
+
+ MsgSend(coid, (void*)&msg, sizeof(msg), (void*)NULL, 0);
+
+ wait();
+}
+
+extern screen_window_t screen_win;
+extern screen_context_t screen_ctx;
void RetroArch::run()
{
- while (true) {
- sleep(1);
- }
+ int rcvid = -1;
+ recv_msg msg;
+
+ while (true) {
+ rcvid = MsgReceive(chid, &msg, sizeof(msg), 0);
+
+ if (rcvid > 0)
+ {
+ switch (msg.code)
+ {
+ case RETROARCH_START_REQUESTED:
+ {
+ printf("RetroArch Started Received\n");fflush(stdout);
+
+ MsgReply(rcvid,0,NULL,0);
+
+ screen_create_context(&screen_ctx, 0);
+
+ bps_initialize();
+
+ if (screen_request_events(screen_ctx) != BPS_SUCCESS)
+ {
+ RARCH_ERR("screen_request_events failed.\n");
+ }
+
+ if (navigator_request_events(0) != BPS_SUCCESS)
+ {
+ RARCH_ERR("navigator_request_events failed.\n");
+ }
+
+ if (navigator_rotation_lock(false) != BPS_SUCCESS)
+ {
+ RARCH_ERR("navigator_location_lock failed.\n");
+ }
+
+ screen_create_window_type(&screen_win, screen_ctx, SCREEN_CHILD_WINDOW);
+
+ screen_join_window_group(screen_win, Application::instance()->mainWindow()->groupId().toAscii().constData());
+
+ char *win_id = "RetroArch_Emulator_Window";
+ screen_set_window_property_cv(screen_win, SCREEN_PROPERTY_ID_STRING, strlen(win_id), win_id);
+
+ int z = 10;
+ if (screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_ZORDER, &z) != 0) {
+ return;
+ }
+
+ initRASettings();
+
+ rarch_main(0, NULL);
+ break;
+ }
+ case RETROARCH_EXIT:
+ MsgReply(rcvid,0,NULL,0);
+ goto exit;
+ default:
+ break;
+ }
+ }
+ }
+ exit:
+ return;
}
+
/*
* Properties
*/
-
QString RetroArch::getRom()
{
- return rom;
+ return rom;
}
void RetroArch::setRom(QString rom)
{
- this->rom = rom;
+ this->rom = rom;
}
QString RetroArch::getCore()
{
- return core;
+ return core;
}
+
void RetroArch::setCore(QString core)
{
- this->core = core;
+ this->core = core;
}
+
+QString RetroArch::getRomExtensions()
+{
+ return romExtensions;
+}
+
+/*
+ * Slots
+ */
+void RetroArch::onRotationCompleted()
+{
+ if (OrientationSupport::instance()->orientation() == UIOrientation::Landscape)
+ {
+ if (state == RETROARCH_START_REQUESTED)
+ {
+ startEmulator();
+ }
+ }
+}
+
+void RetroArch::onCoreSelected(QVariant value)
+{
+ coreSelectedIndex = value.toInt();
+
+ core.clear();
+ core.append("app/native/lib/");
+ core.append(coreList[coreSelectedIndex]);
+ emit coreChanged(core);
+
+ romExtensions = GET_CORE_INFO(coreSelectedIndex, "supported_extensions");
+ emit romExtensionsChanged(romExtensions);
+
+ qDebug() << "Core Selected: " << core;
+ qDebug() << "Supported Extensions: " << romExtensions;
+}
+
+/*
+ * Functions
+ */
+void RetroArch::startEmulator()
+{
+ state = RETROARCH_START_REQUESTED;
+
+ if (OrientationSupport::instance()->orientation() == UIOrientation::Portrait)
+ {
+ OrientationSupport::instance()->setSupportedDisplayOrientation(SupportedDisplayOrientation::DisplayLandscape);
+ }
+ else
+ {
+ recv_msg msg;
+ msg.code = RETROARCH_START_REQUESTED;
+
+ MsgSend(coid, (void*)&msg, sizeof(msg), (void*)NULL, 0);
+
+ state = RETROARCH_RUNNING;
+ }
+}
+
+void RetroArch::findCores()
+{
+ DIR *dirp;
+ struct dirent* direntp;
+ int count=0, i=0;
+
+ dirp = opendir(g_settings.libretro);
+ if( dirp != NULL ) {
+ for(;;) {
+ direntp = readdir( dirp );
+ if( direntp == NULL ) break;
+ count++;
+ }
+ fflush(stdout);
+ rewinddir(dirp);
+
+ if(count==2){
+ printf("No Cores Found");fflush(stdout);
+ }
+
+ coreList = (char**)malloc(count*sizeof(char*));
+ count = 0;
+
+ for(;;){
+ direntp = readdir( dirp );
+ if( direntp == NULL ) break;
+ coreList[count++] = strdup((char*)direntp->d_name);
+ }
+
+ //Load info for Cores
+ JsonDataAccess jda;
+
+ coreInfo = jda.load("app/native/assets/coreInfo.json").toMap();
+
+ Option *tmp;
+
+ //Populate DropDown
+ for (i = 2; i < count; ++i)
+ {
+ qDebug() << GET_CORE_INFO(i, "display_name");
+
+ tmp = Option::create().text(GET_CORE_INFO(i, "display_name"))
+ .value(i);
+
+ coreSelection->add(tmp);
+ }
+ }
+
+ closedir(dirp);
+}
+
+void RetroArch::initRASettings()
+{
+ strlcpy(g_settings.libretro,(char *)core.toAscii().constData(), sizeof(g_settings.libretro));
+ strlcpy(g_extern.fullpath, (char *)rom.toAscii().constData(), sizeof(g_extern.fullpath));
+ strlcpy(g_settings.input.overlay, GET_CORE_INFO(coreSelectedIndex, "default_overlay").toAscii().constData(), sizeof(g_settings.input.overlay));
+}
+
diff --git a/blackberry-qnx/bb10/src/RetroArch-Cascades.h b/blackberry-qnx/bb10/src/RetroArch-Cascades.h
index 4d1efe74b9..aa58391922 100644
--- a/blackberry-qnx/bb10/src/RetroArch-Cascades.h
+++ b/blackberry-qnx/bb10/src/RetroArch-Cascades.h
@@ -2,9 +2,13 @@
#define _RETROARCHCASCADES_H_
#include
-#include
+#include
+#include
#include
+#include
+#include
+
using namespace bb::cascades;
namespace bb
@@ -21,14 +25,24 @@ class RetroArch: public QThread
Q_PROPERTY(QString rom READ getRom WRITE setRom NOTIFY romChanged)
Q_PROPERTY(QString core READ getCore WRITE setCore NOTIFY coreChanged)
+ Q_PROPERTY(QString romExtensions READ getRomExtensions NOTIFY romExtensionsChanged)
public:
RetroArch();
~ RetroArch();
+ Q_INVOKABLE void startEmulator();
+ Q_INVOKABLE void findCores();
+
signals:
void romChanged(QString);
void coreChanged(QString);
+ void romExtensionsChanged(QString);
+
+public slots:
+ void aboutToQuit();
+ void onRotationCompleted();
+ void onCoreSelected(QVariant);
private:
/**
@@ -45,6 +59,29 @@ private:
QString getCore();
void setCore(QString core);
+ QString romExtensions;
+ QString getRomExtensions();
+
+ void initRASettings();
+
+ int chid, coid;
+ int state;
+ DropDown *coreSelection;
+ QVariantMap coreInfo;
+ char **coreList;
+ int coreSelectedIndex;
};
+enum {
+ RETROARCH_RUNNING,
+ RETROARCH_START_REQUESTED,
+ RETROARCH_EXIT
+};
+
+
+typedef union {
+ _pulse pulse;
+ int code;
+} recv_msg;
+
#endif
diff --git a/blackberry-qnx/bb10/src/main.cpp b/blackberry-qnx/bb10/src/main.cpp
index 072343c469..1f9cd50ca1 100644
--- a/blackberry-qnx/bb10/src/main.cpp
+++ b/blackberry-qnx/bb10/src/main.cpp
@@ -27,6 +27,8 @@ Q_DECL_EXPORT int main(int argc, char **argv)
// Initialize our application.
RetroArch mainApp;
+ QObject::connect(&app, SIGNAL( aboutToQuit() ), &mainApp, SLOT( aboutToQuit() ));
+
// We complete the transaction started in the main application constructor and start the
// client event loop here. When loop is exited the Application deletes the scene which
// deletes all its children.
diff --git a/frontend/frontend_bbqnx.c b/frontend/frontend_bbqnx.c
index c254826835..d271aa41b2 100644
--- a/frontend/frontend_bbqnx.c
+++ b/frontend/frontend_bbqnx.c
@@ -26,13 +26,16 @@
int rarch_main(int argc, char *argv[])
{
//Initialize bps
+#ifndef HAVE_BB10
bps_initialize();
rarch_main_clear_state();
- strlcpy(g_extern.config_path, "app/native/retroarch.cfg", sizeof(g_extern.config_path));
strlcpy(g_settings.libretro, "app/native/lib", sizeof(g_settings.libretro));
strlcpy(g_extern.fullpath, "--menu", sizeof(g_extern.fullpath));
+#endif
+
+ strlcpy(g_extern.config_path, "app/native/retroarch.cfg", sizeof(g_extern.config_path));
config_load();
diff --git a/gfx/context/bbqnx_ctx.c b/gfx/context/bbqnx_ctx.c
index 9c8a8517b8..107db75872 100644
--- a/gfx/context/bbqnx_ctx.c
+++ b/gfx/context/bbqnx_ctx.c
@@ -45,7 +45,7 @@ static EGLConfig egl_config;
static bool g_resize;
screen_context_t screen_ctx;
-static screen_window_t screen_win;
+screen_window_t screen_win;
static screen_display_t screen_disp;
GLfloat _angle;
@@ -209,6 +209,7 @@ static bool gfx_ctx_init(void)
goto error;
}
+#ifndef HAVE_BB10
int angle = atoi(getenv("ORIENTATION"));
screen_display_mode_t screen_mode;
@@ -219,7 +220,8 @@ static bool gfx_ctx_init(void)
}
int size[2];
- if (screen_get_window_property_iv(screen_win, SCREEN_PROPERTY_BUFFER_SIZE, size)) {
+ if (screen_get_window_property_iv(screen_win, SCREEN_PROPERTY_BUFFER_SIZE, size))
+ {
RARCH_ERR("screen_get_window_property_iv [SCREEN_PROPERTY_BUFFER_SIZE] failed.\n");
goto error;
}
@@ -243,6 +245,7 @@ static bool gfx_ctx_init(void)
goto error;
}
+
if (screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_BUFFER_SIZE, buffer_size))
{
RARCH_ERR("screen_set_window_property_iv [SCREEN_PROPERTY_BUFFER_SIZE] failed.\n");
@@ -254,6 +257,7 @@ static bool gfx_ctx_init(void)
RARCH_ERR("screen_set_window_property_iv [SCREEN_PROPERTY_ROTATION] failed.\n");
goto error;
}
+#endif
if (screen_create_window_buffers(screen_win, WINDOW_BUFFERS))
{
diff --git a/griffin/griffin.c b/griffin/griffin.c
index cf67ea3e67..bb1ceee88e 100644
--- a/griffin/griffin.c
+++ b/griffin/griffin.c
@@ -401,7 +401,7 @@ MAIN
#include "../frontend/frontend_ios.c"
#endif
-#if !defined(ANDROID) && !defined(IOS)
+#if !defined(ANDROID) && !defined(IOS) && !(defined(__BLACKBERRY_QNX__) && defined(HAVE_BB10))
#include "../frontend/frontend.c"
#endif