Browse Source

Put brave old bb10 platform to a well-deserved rest

Add some 🔥 to appease @reduz. Fixes #8692.
Rémi Verschelde 8 years ago
parent
commit
32afcbc482

+ 1 - 1
doc/base/classes.xml

@@ -26264,7 +26264,7 @@
 			<return type="String">
 			</return>
 			<description>
-				Return the name of the host OS. Possible values are: "Android", "BlackBerry 10", "Flash", "Haiku", "iOS", "HTML5", "OSX", "Server", "Windows", "UWP", "X11"
+				Return the name of the host OS. Possible values are: "Android", "Haiku", "iOS", "HTML5", "OSX", "Server", "Windows", "UWP", "X11".
 			</description>
 		</method>
 		<method name="get_power_percent_left">

+ 0 - 1
modules/gdnative/gdnative.cpp

@@ -515,7 +515,6 @@ static const char *_dl_platforms_info[] = {
 	"unix|x11|so|X11",
 	"unix|server|so|Server",
 	"unix|android|so|Android",
-	"unix|blackberry|so|Blackberry 10",
 	"unix|haiku|so|Haiku", // Right?
 	"|mac|dynlib|Mac",
 	"mac|ios|dynlib|iOS",

+ 1 - 1
modules/webm/libvpx/SCsub

@@ -273,7 +273,7 @@ else:
         webm_cpu_x86 = True
     else:
         webm_cpu_x86 = not is_x11_or_server_arm and (cpu_bits == '32' or cpu_bits == '64') and (env["platform"] == 'windows' or env["platform"] == 'x11' or env["platform"] == 'osx' or env["platform"] == 'haiku' or is_android_x86 or is_ios_x86)
-        webm_cpu_arm = is_x11_or_server_arm or (not is_ios_x86 and env["platform"] == 'iphone') or env["platform"] == 'bb10' or (not is_android_x86 and env["platform"] == 'android')
+        webm_cpu_arm = is_x11_or_server_arm or (not is_ios_x86 and env["platform"] == 'iphone') or (not is_android_x86 and env["platform"] == 'android')
 
 if webm_cpu_x86:
     import subprocess

+ 0 - 23
platform/bb10/SCsub

@@ -1,23 +0,0 @@
-#!/usr/bin/env python
-
-Import('env')
-
-bb10_lib = [
-
-    'bbutil.c',
-    'os_bb10.cpp',
-    'audio_driver_bb10.cpp',
-    'godot_bb10.cpp',
-    'payment_service.cpp',
-]
-
-env_bps = env.Clone()
-if env['bb10_payment_service'] == "yes":
-    env_bps.Append(CPPFLAGS=['-DPAYMENT_SERVICE_ENABLED'])
-
-if env['bb10_lgles_override'] == "yes":
-    env_bps.Append(CPPFLAGS=['-DBB10_LGLES_OVERRIDE'])
-
-
-prog = None
-prog = env_bps.Program('#bin/godot', bb10_lib)

+ 0 - 254
platform/bb10/audio_driver_bb10.cpp

@@ -1,254 +0,0 @@
-/*************************************************************************/
-/*  audio_driver_bb10.cpp                                                */
-/*************************************************************************/
-/*                       This file is part of:                           */
-/*                           GODOT ENGINE                                */
-/*                    http://www.godotengine.org                         */
-/*************************************************************************/
-/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur.                 */
-/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)    */
-/*                                                                       */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the       */
-/* "Software"), to deal in the Software without restriction, including   */
-/* without limitation the rights to use, copy, modify, merge, publish,   */
-/* distribute, sublicense, and/or sell copies of the Software, and to    */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions:                                             */
-/*                                                                       */
-/* The above copyright notice and this permission notice shall be        */
-/* included in all copies or substantial portions of the Software.       */
-/*                                                                       */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
-/*************************************************************************/
-#include "audio_driver_bb10.h"
-
-#include <errno.h>
-
-Error AudioDriverBB10::init() {
-	return init(NULL);
-};
-
-Error AudioDriverBB10::init(const char *p_name) {
-
-	active = false;
-	thread_exited = false;
-	exit_thread = false;
-	pcm_open = false;
-	samples_in = NULL;
-	samples_out = NULL;
-
-	mix_rate = 44100;
-	speaker_mode = SPEAKER_MODE_STEREO;
-
-	char *dev_name;
-	if (p_name == NULL) {
-		dev_name = "pcmPreferred";
-	} else {
-		dev_name = (char *)p_name;
-	}
-	printf("******** reconnecting to device %s\n", dev_name);
-	int ret = snd_pcm_open_name(&pcm_handle, dev_name, SND_PCM_OPEN_PLAYBACK);
-	ERR_FAIL_COND_V(ret < 0, FAILED);
-	pcm_open = true;
-
-	snd_pcm_channel_info_t cinfo;
-	zeromem(&cinfo, sizeof(cinfo));
-	cinfo.channel = SND_PCM_CHANNEL_PLAYBACK;
-	snd_pcm_plugin_info(pcm_handle, &cinfo);
-
-	printf("rates %i, %i, %i, %i, %i\n", cinfo.rates, cinfo.rates & SND_PCM_RATE_44100, cinfo.rates & SND_PCM_RATE_32000, cinfo.rates & SND_PCM_RATE_22050, cinfo.max_rate);
-
-	mix_rate = cinfo.max_rate;
-
-	printf("formats %i, %i, %i\n", cinfo.formats, cinfo.formats & SND_PCM_FMT_S16_BE, cinfo.formats & SND_PCM_FMT_S16_LE);
-	ERR_FAIL_COND_V(!(cinfo.formats & SND_PCM_FMT_S16_LE), FAILED);
-
-	printf("voices %i\n", cinfo.max_voices);
-	speaker_mode = SPEAKER_MODE_STEREO;
-
-	snd_pcm_channel_params_t cp;
-	zeromem(&cp, sizeof(cp));
-	cp.mode = SND_PCM_MODE_BLOCK;
-	cp.channel = SND_PCM_CHANNEL_PLAYBACK;
-	cp.start_mode = SND_PCM_START_DATA;
-	cp.stop_mode = SND_PCM_STOP_STOP;
-	//cp.buf.block.frag_size = cinfo.max_fragment_size;
-	cp.buf.block.frag_size = 512;
-	cp.buf.block.frags_max = 1;
-	cp.buf.block.frags_min = 1;
-	cp.format.interleave = 1;
-	cp.format.rate = mix_rate;
-	cp.format.voices = speaker_mode;
-	cp.format.format = SND_PCM_SFMT_S16_LE;
-
-	ret = snd_pcm_plugin_params(pcm_handle, &cp);
-	printf("ret is %i, %i\n", ret, cp.why_failed);
-	ERR_FAIL_COND_V(ret < 0, FAILED);
-
-	ret = snd_pcm_plugin_prepare(pcm_handle, SND_PCM_CHANNEL_PLAYBACK);
-	ERR_FAIL_COND_V(ret < 0, FAILED);
-
-	snd_mixer_group_t group;
-	zeromem(&group, sizeof(group));
-	snd_pcm_channel_setup_t setup;
-	zeromem(&setup, sizeof(setup));
-	setup.channel = SND_PCM_CHANNEL_PLAYBACK;
-	setup.mode = SND_PCM_MODE_BLOCK;
-	setup.mixer_gid = &group.gid;
-	ret = snd_pcm_plugin_setup(pcm_handle, &setup);
-	ERR_FAIL_COND_V(ret < 0, FAILED);
-
-	pcm_frag_size = setup.buf.block.frag_size;
-	pcm_max_frags = 1;
-
-	sample_buf_count = pcm_frag_size * pcm_max_frags / 2;
-	printf("sample count %i, %i, %i\n", sample_buf_count, pcm_frag_size, pcm_max_frags);
-	samples_in = memnew_arr(int32_t, sample_buf_count);
-	samples_out = memnew_arr(int16_t, sample_buf_count);
-
-	thread = Thread::create(AudioDriverBB10::thread_func, this);
-
-	return OK;
-};
-
-void AudioDriverBB10::thread_func(void *p_udata) {
-
-	AudioDriverBB10 *ad = (AudioDriverBB10 *)p_udata;
-
-	int channels = speaker_mode;
-	int frame_count = ad->sample_buf_count / channels;
-	int bytes_out = frame_count * channels * 2;
-
-	while (!ad->exit_thread) {
-
-		if (!ad->active) {
-
-			for (int i = 0; i < ad->sample_buf_count; i++) {
-
-				ad->samples_out[i] = 0;
-			};
-		} else {
-
-			ad->lock();
-
-			ad->audio_server_process(frame_count, ad->samples_in);
-
-			ad->unlock();
-
-			for (int i = 0; i < frame_count * channels; i++) {
-
-				ad->samples_out[i] = ad->samples_in[i] >> 16;
-			}
-		};
-
-		int todo = bytes_out;
-		int total = 0;
-
-		while (todo) {
-
-			uint8_t *src = (uint8_t *)ad->samples_out;
-			int wrote = snd_pcm_plugin_write(ad->pcm_handle, (void *)(src + total), todo);
-			if (wrote < 0) {
-				// error?
-				break;
-			};
-			total += wrote;
-			todo -= wrote;
-			if (wrote < todo) {
-				if (ad->thread_exited) {
-					break;
-				};
-				printf("pcm_write underrun %i, errno %i\n", (int)ad->thread_exited, errno);
-				snd_pcm_channel_status_t status;
-				zeromem(&status, sizeof(status));
-				// put in non-blocking mode
-				snd_pcm_nonblock_mode(ad->pcm_handle, 1);
-				status.channel = SND_PCM_CHANNEL_PLAYBACK;
-				int ret = snd_pcm_plugin_status(ad->pcm_handle, &status);
-				//printf("status return %i, %i, %i, %i, %i\n", ret, errno, status.status, SND_PCM_STATUS_READY, SND_PCM_STATUS_UNDERRUN);
-				snd_pcm_nonblock_mode(ad->pcm_handle, 0);
-				if (ret < 0) {
-					break;
-				};
-				if (status.status == SND_PCM_STATUS_READY ||
-						status.status == SND_PCM_STATUS_UNDERRUN) {
-					snd_pcm_plugin_prepare(ad->pcm_handle, SND_PCM_CHANNEL_PLAYBACK);
-				} else {
-					break;
-				};
-			};
-		};
-	};
-
-	snd_pcm_plugin_flush(ad->pcm_handle, SND_PCM_CHANNEL_PLAYBACK);
-
-	ad->thread_exited = true;
-	printf("**************** audio thread exit\n");
-};
-
-void AudioDriverBB10::start() {
-
-	active = true;
-};
-
-int AudioDriverBB10::get_mix_rate() const {
-
-	return mix_rate;
-};
-
-AudioDriver::SpeakerMode AudioDriverBB10::get_speaker_mode() const {
-
-	return speaker_mode;
-};
-
-void AudioDriverBB10::lock() {
-
-	if (!thread)
-		return;
-	mutex->lock();
-};
-
-void AudioDriverBB10::unlock() {
-
-	if (!thread)
-		return;
-	mutex->unlock();
-};
-
-void AudioDriverBB10::finish() {
-
-	if (!thread)
-		return;
-
-	exit_thread = true;
-	Thread::wait_to_finish(thread);
-
-	if (pcm_open)
-		snd_pcm_close(pcm_handle);
-
-	if (samples_in) {
-		memdelete_arr(samples_in);
-		memdelete_arr(samples_out);
-	};
-
-	memdelete(thread);
-	thread = NULL;
-};
-
-AudioDriverBB10::AudioDriverBB10() {
-
-	mutex = Mutex::create();
-};
-
-AudioDriverBB10::~AudioDriverBB10() {
-
-	memdelete(mutex);
-	mutex = NULL;
-};

+ 0 - 77
platform/bb10/audio_driver_bb10.h

@@ -1,77 +0,0 @@
-/*************************************************************************/
-/*  audio_driver_bb10.h                                                  */
-/*************************************************************************/
-/*                       This file is part of:                           */
-/*                           GODOT ENGINE                                */
-/*                    http://www.godotengine.org                         */
-/*************************************************************************/
-/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur.                 */
-/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)    */
-/*                                                                       */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the       */
-/* "Software"), to deal in the Software without restriction, including   */
-/* without limitation the rights to use, copy, modify, merge, publish,   */
-/* distribute, sublicense, and/or sell copies of the Software, and to    */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions:                                             */
-/*                                                                       */
-/* The above copyright notice and this permission notice shall be        */
-/* included in all copies or substantial portions of the Software.       */
-/*                                                                       */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
-/*************************************************************************/
-#include "servers/audio_server.h"
-
-#include "core/os/mutex.h"
-#include "core/os/thread.h"
-
-#include <sys/asoundlib.h>
-
-class AudioDriverBB10 : public AudioDriver {
-
-	Thread *thread;
-	Mutex *mutex;
-
-	snd_pcm_t *pcm_handle;
-
-	int32_t *samples_in;
-	int16_t *samples_out;
-	int sample_buf_count;
-
-	static void thread_func(void *p_udata);
-
-	int mix_rate;
-	SpeakerMode speaker_mode;
-
-	int pcm_frag_size;
-	int pcm_max_frags;
-
-	bool active;
-	bool thread_exited;
-	mutable bool exit_thread;
-	bool pcm_open;
-
-public:
-	const char *get_name() const {
-		return "BB10";
-	};
-
-	virtual Error init();
-	virtual Error init(const char *p_name);
-	virtual void start();
-	virtual int get_mix_rate() const;
-	virtual SpeakerMode get_speaker_mode() const;
-	virtual void lock();
-	virtual void unlock();
-	virtual void finish();
-
-	AudioDriverBB10();
-	~AudioDriverBB10();
-};

+ 0 - 53
platform/bb10/bar/bar-descriptor.xml

@@ -1,53 +0,0 @@
-<?xml version='1.0' encoding='utf-8' standalone='no'?>
-<qnx xmlns="http://www.qnx.com/schemas/application/1.0">
-    <!-- BlackBerry® 10 application descriptor file.
-
-    Specifies parameters for identifying, installing, and launching native applications on BlackBerry® 10 OS.
--->
-    <!-- A universally unique application identifier. Must be unique across all BlackBerry applications.
-         Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. -->
-    <id>com.godot.game</id>
-    <!-- The name that is displayed in the BlackBerry application installer. 
-         May have multiple values for each language. See samples or xsd schema file. Optional. -->
-    <name>Godot Game</name>
-    <!-- A string value of the format <0-999>.<0-999>.<0-999> that represents application version which can be used to check for application upgrade. 
-         Values can also be 1-part or 2-part. It is not necessary to have a 3-part value.
-         An updated version of application must have a versionNumber value higher than the previous version. Required. -->
-    <versionNumber>0.0.1</versionNumber>
-    <!-- Fourth digit segment of the package version. First three segments are taken from the 
-         <versionNumber> element.  Must be an integer from 0 to 2^16-1 -->
-    <buildId>0</buildId>
-    <!-- Description, displayed in the BlackBerry application installer.
-         May have multiple values for each language. See samples or xsd schema file. Optional. -->
-    <description>Game made with Godot Engine</description>
-    <!--  Name of author which is used for signing. Must match the developer name of your development certificate. -->
-    <author>You Name or Company</author>
-    <authorId>authorIDherePlease</authorId>
-    <!--  Unique author ID assigned by signing authority. Required if using debug tokens. -->
-    <!-- <authorId>ABC1234YjsnUk235h</authorId> -->
-    <initialWindow>
-        <aspectRatio>landscape</aspectRatio>
-        <autoOrients>false</autoOrients>
-        <systemChrome>none</systemChrome>
-        <transparent>false</transparent>
-    </initialWindow>
-    <!--  The category where the application appears. Either core.games or core.media. -->
-    <category>core.games</category>
-    <permission>read_device_identifying_information</permission>
-    <permission>access_internet</permission>
-    <asset path="data.pck">data.pck</asset>
-    <configuration name="Device-Debug">
-        <platformArchitecture>armle-v7</platformArchitecture>
-        <asset type="Qnx/Elf" path="godot.bb10.debug.qnx.armle" entry="true">godot.bb10.debug.qnx.armle</asset>
-    </configuration>
-    <configuration name="Device-Release">
-        <platformArchitecture>armle-v7</platformArchitecture>
-        <asset type="Qnx/Elf" path="godot.bb10.opt.qnx.armle" entry="true">godot.bb10.opt.qnx.armle</asset>
-    </configuration>
-    <!--  The icon for the application. -->
-    <icon>
-        <image>icon.png</image>
-    </icon>
-    <!-- Ensure that shared libraries in the package are found at run-time. -->
-    <env value="app/native/lib:/usr/lib/qt4/lib" var="LD_LIBRARY_PATH"/>
-</qnx>

BIN
platform/bb10/bar/icon.png


+ 0 - 529
platform/bb10/bbutil.c

@@ -1,529 +0,0 @@
-/*
- * Copyright (c) 2011-2013 Research In Motion Limited.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <assert.h>
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/keycodes.h>
-#include <time.h>
-
-#include "bbutil.h"
-
-EGLDisplay egl_disp;
-EGLSurface egl_surf;
-
-static EGLConfig egl_conf;
-static EGLContext egl_ctx;
-
-static screen_context_t screen_ctx;
-static screen_window_t screen_win;
-static screen_display_t screen_disp;
-
-
-static void
-bbutil_egl_perror(const char *msg) {
-    static const char *errmsg[] = {
-        "function succeeded",
-        "EGL is not initialized, or could not be initialized, for the specified display",
-        "cannot access a requested resource",
-        "failed to allocate resources for the requested operation",
-        "an unrecognized attribute or attribute value was passed in an attribute list",
-        "an EGLConfig argument does not name a valid EGLConfig",
-        "an EGLContext argument does not name a valid EGLContext",
-        "the current surface of the calling thread is no longer valid",
-        "an EGLDisplay argument does not name a valid EGLDisplay",
-        "arguments are inconsistent",
-        "an EGLNativePixmapType argument does not refer to a valid native pixmap",
-        "an EGLNativeWindowType argument does not refer to a valid native window",
-        "one or more argument values are invalid",
-        "an EGLSurface argument does not name a valid surface configured for rendering",
-        "a power management event has occurred",
-    };
-
-    fprintf(stderr, "%s: %s\n", msg, errmsg[eglGetError() - EGL_SUCCESS]);
-}
-EGLConfig bbutil_choose_config(EGLDisplay egl_disp, enum RENDERING_API api) {
-    EGLConfig egl_conf = (EGLConfig)0;
-    EGLConfig *egl_configs;
-    EGLint egl_num_configs;
-    EGLint val;
-    EGLBoolean rc;
-    EGLint i;
-
-    rc = eglGetConfigs(egl_disp, NULL, 0, &egl_num_configs);
-    if (rc != EGL_TRUE) {
-        bbutil_egl_perror("eglGetConfigs");
-        return egl_conf;
-    }
-    if (egl_num_configs == 0) {
-        fprintf(stderr, "eglGetConfigs: could not find a configuration\n");
-        return egl_conf;
-    }
-
-    egl_configs = malloc(egl_num_configs * sizeof(*egl_configs));
-    if (egl_configs == NULL) {
-        fprintf(stderr, "could not allocate memory for %d EGL configs\n", egl_num_configs);
-        return egl_conf;
-    }
-
-    rc = eglGetConfigs(egl_disp, egl_configs,
-        egl_num_configs, &egl_num_configs);
-    if (rc != EGL_TRUE) {
-        bbutil_egl_perror("eglGetConfigs");
-        free(egl_configs);
-        return egl_conf;
-    }
-
-    for (i = 0; i < egl_num_configs; i++) {
-        eglGetConfigAttrib(egl_disp, egl_configs[i], EGL_SURFACE_TYPE, &val);
-        if (!(val & EGL_WINDOW_BIT)) {
-            continue;
-        }
-
-        eglGetConfigAttrib(egl_disp, egl_configs[i], EGL_RENDERABLE_TYPE, &val);
-        if (!(val & api)) {
-        	continue;
-        }
-
-        eglGetConfigAttrib(egl_disp, egl_configs[i], EGL_DEPTH_SIZE, &val);
-        if ((api & (GL_ES_1|GL_ES_2)) && (val == 0)) {
-            continue;
-        }
-
-        eglGetConfigAttrib(egl_disp, egl_configs[i], EGL_RED_SIZE, &val);
-        if (val != 8) {
-            continue;
-        }
-        eglGetConfigAttrib(egl_disp, egl_configs[i], EGL_GREEN_SIZE, &val);
-        if (val != 8) {
-            continue;
-        }
-
-        eglGetConfigAttrib(egl_disp, egl_configs[i], EGL_BLUE_SIZE, &val);
-        if (val != 8) {
-            continue;
-        }
-
-        eglGetConfigAttrib(egl_disp, egl_configs[i], EGL_BUFFER_SIZE, &val);
-        if (val != 32) {
-            continue;
-        }
-
-        egl_conf = egl_configs[i];
-        break;
-    }
-
-    free(egl_configs);
-
-    if (egl_conf == (EGLConfig)0) {
-        fprintf(stderr, "bbutil_choose_config: could not find a matching configuration\n");
-    }
-
-    return egl_conf;
-}
-
-int
-bbutil_init_egl(screen_context_t ctx, enum RENDERING_API api) {
-    int usage;
-    int format = SCREEN_FORMAT_RGBX8888;
-    int nbuffers = 2;
-    EGLint interval = 1;
-    int rc;
-    EGLint attributes[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE };
-
-    if (api == GL_ES_1) {
-		usage = SCREEN_USAGE_OPENGL_ES1 | SCREEN_USAGE_ROTATION;
-    } else if (api == GL_ES_2) {
-		usage = SCREEN_USAGE_OPENGL_ES2 | SCREEN_USAGE_ROTATION;
-    } else if (api == VG) {
-		usage = SCREEN_USAGE_OPENVG | SCREEN_USAGE_ROTATION;
-    } else {
-    	fprintf(stderr, "invalid api setting\n");
-    	return EXIT_FAILURE;
-    }
-
-    //Simple egl initialization
-    screen_ctx = ctx;
-
-    egl_disp = eglGetDisplay(EGL_DEFAULT_DISPLAY);
-    if (egl_disp == EGL_NO_DISPLAY) {
-        bbutil_egl_perror("eglGetDisplay");
-        bbutil_terminate();
-        return EXIT_FAILURE;
-    }
-
-    rc = eglInitialize(egl_disp, NULL, NULL);
-    if (rc != EGL_TRUE) {
-        bbutil_egl_perror("eglInitialize");
-        bbutil_terminate();
-        return EXIT_FAILURE;
-    }
-
-    if ((api == GL_ES_1) || (api == GL_ES_2)) {
-    	rc = eglBindAPI(EGL_OPENGL_ES_API);
-    } else if (api == VG) {
-    	rc = eglBindAPI(EGL_OPENVG_API);
-    }
-
-    if (rc != EGL_TRUE) {
-        bbutil_egl_perror("eglBindApi");
-        bbutil_terminate();
-        return EXIT_FAILURE;
-    }
-
-	egl_conf = bbutil_choose_config(egl_disp, api);
-    if (egl_conf == (EGLConfig)0) {
-        bbutil_terminate();
-        return EXIT_FAILURE;
-    }
-
-    if (api == GL_ES_2) {
-    	egl_ctx = eglCreateContext(egl_disp, egl_conf, EGL_NO_CONTEXT, attributes);
-    } else {
-    	egl_ctx = eglCreateContext(egl_disp, egl_conf, EGL_NO_CONTEXT, NULL);
-    }
-
-    if (egl_ctx == EGL_NO_CONTEXT) {
-        bbutil_egl_perror("eglCreateContext");
-        bbutil_terminate();
-        return EXIT_FAILURE;
-    }
-
-    rc = screen_create_window(&screen_win, screen_ctx);
-    if (rc) {
-        perror("screen_create_window");
-        bbutil_terminate();
-        return EXIT_FAILURE;
-    }
-
-    rc = screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_FORMAT, &format);
-    if (rc) {
-        perror("screen_set_window_property_iv(SCREEN_PROPERTY_FORMAT)");
-        bbutil_terminate();
-        return EXIT_FAILURE;
-    }
-
-    rc = screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_USAGE, &usage);
-    if (rc) {
-        perror("screen_set_window_property_iv(SCREEN_PROPERTY_USAGE)");
-        bbutil_terminate();
-        return EXIT_FAILURE;
-    }
-
-	rc = screen_get_window_property_pv(screen_win, SCREEN_PROPERTY_DISPLAY, (void **)&screen_disp);
-	if (rc) {
-		perror("screen_get_window_property_pv");
-		bbutil_terminate();
-		return EXIT_FAILURE;
-	}
-
-	int screen_resolution[2];
-
-	rc = screen_get_display_property_iv(screen_disp, SCREEN_PROPERTY_SIZE, screen_resolution);
-	if (rc) {
-		perror("screen_get_display_property_iv");
-		bbutil_terminate();
-		return EXIT_FAILURE;
-	}
-
-	int angle = atoi(getenv("ORIENTATION"));
-
-	screen_display_mode_t screen_mode;
-	rc = screen_get_display_property_pv(screen_disp, SCREEN_PROPERTY_MODE, (void**)&screen_mode);
-	if (rc) {
-		perror("screen_get_display_property_pv");
-		bbutil_terminate();
-		return EXIT_FAILURE;
-	}
-
-	int size[2];
-	rc = screen_get_window_property_iv(screen_win, SCREEN_PROPERTY_BUFFER_SIZE, size);
-	if (rc) {
-		perror("screen_get_window_property_iv");
-		bbutil_terminate();
-		return EXIT_FAILURE;
-	}
-
-	int buffer_size[2] = {size[0], size[1]};
-
-	if ((angle == 0) || (angle == 180)) {
-		if (((screen_mode.width > screen_mode.height) && (size[0] < size[1])) ||
-			((screen_mode.width < screen_mode.height) && (size[0] > size[1]))) {
-				buffer_size[1] = size[0];
-				buffer_size[0] = size[1];
-		}
-	} else if ((angle == 90) || (angle == 270)){
-		if (((screen_mode.width > screen_mode.height) && (size[0] > size[1])) ||
-			((screen_mode.width < screen_mode.height && size[0] < size[1]))) {
-				buffer_size[1] = size[0];
-				buffer_size[0] = size[1];
-		}
-	} else {
-		 fprintf(stderr, "Navigator returned an unexpected orientation angle.\n");
-		 bbutil_terminate();
-		 return EXIT_FAILURE;
-	}
-
-	rc = screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_BUFFER_SIZE, buffer_size);
-	if (rc) {
-		perror("screen_set_window_property_iv");
-		bbutil_terminate();
-		return EXIT_FAILURE;
-	}
-
-	rc = screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_ROTATION, &angle);
-	if (rc) {
-		perror("screen_set_window_property_iv");
-		bbutil_terminate();
-		return EXIT_FAILURE;
-	}
-
-    rc = screen_create_window_buffers(screen_win, nbuffers);
-    if (rc) {
-        perror("screen_create_window_buffers");
-        bbutil_terminate();
-        return EXIT_FAILURE;
-    }
-
-	rc = screen_create_window_group(screen_win, get_window_group_id());
-	if (rc) {
-		perror("screen_create_window_group");
-		bbutil_terminate();
-		return EXIT_FAILURE;
-	}
-	/* if (screen_create_window_group(screen_win, get_window_group_id()) != 0) goto fail; */
-
-	int idle_mode = SCREEN_IDLE_MODE_KEEP_AWAKE;
-	screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_IDLE_MODE, &idle_mode);
-
-    egl_surf = eglCreateWindowSurface(egl_disp, egl_conf, screen_win, NULL);
-    if (egl_surf == EGL_NO_SURFACE) {
-        bbutil_egl_perror("eglCreateWindowSurface");
-        bbutil_terminate();
-        return EXIT_FAILURE;
-    }
-
-    rc = eglMakeCurrent(egl_disp, egl_surf, egl_surf, egl_ctx);
-    if (rc != EGL_TRUE) {
-        bbutil_egl_perror("eglMakeCurrent");
-        bbutil_terminate();
-        return EXIT_FAILURE;
-    }
-
-    rc = eglSwapInterval(egl_disp, interval);
-    if (rc != EGL_TRUE) {
-        bbutil_egl_perror("eglSwapInterval");
-        bbutil_terminate();
-        return EXIT_FAILURE;
-    }
-
-    return EXIT_SUCCESS;
-}
-
-int
-bbutil_init_gl2d() {
-#if 0
-    EGLint surface_width, surface_height;
-
-    if ((egl_disp == EGL_NO_DISPLAY) || (egl_surf == EGL_NO_SURFACE) ){
-    	return EXIT_FAILURE;
-    }
-
-	eglQuerySurface(egl_disp, egl_surf, EGL_WIDTH, &surface_width);
-    eglQuerySurface(egl_disp, egl_surf, EGL_HEIGHT, &surface_height);
-
-    glShadeModel(GL_SMOOTH);
-
-    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
-
-    glViewport(0, 0, surface_width, surface_height);
-    glMatrixMode(GL_PROJECTION);
-    glLoadIdentity();
-
-    glOrthof(0.0f, (float)(surface_width) / (float)(surface_height), 0.0f, 1.0f, -1.0f, 1.0f);
-
-    glMatrixMode(GL_MODELVIEW);
-    glLoadIdentity();
-#endif
-
-    return EXIT_SUCCESS;
-}
-
-int
-bbutil_init(screen_context_t ctx, enum RENDERING_API api) {
-	if (EXIT_SUCCESS != bbutil_init_egl(ctx, api)) {
-		return EXIT_FAILURE;
-	}
-
-	if ((GL_ES_1 == api) && (EXIT_SUCCESS != bbutil_init_gl2d())) {
-		return EXIT_FAILURE;
-	}
-
-	return EXIT_SUCCESS;
-}
-
-int bbutil_is_flipped() {
-
-	int ret;
-	screen_get_window_property_iv(screen_win, SCREEN_PROPERTY_FLIP, &ret);
-	return ret;
-};
-
-int bbutil_get_rotation() {
-
-	int ret;
-	screen_get_window_property_iv(screen_win, SCREEN_PROPERTY_ROTATION, &ret);
-	return ret;
-};
-
-
-void
-bbutil_terminate() {
-    //Typical EGL cleanup
-	if (egl_disp != EGL_NO_DISPLAY) {
-	    eglMakeCurrent(egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
-	    if (egl_surf != EGL_NO_SURFACE) {
-	        eglDestroySurface(egl_disp, egl_surf);
-	        egl_surf = EGL_NO_SURFACE;
-	    }
-	    if (egl_ctx != EGL_NO_CONTEXT) {
-	        eglDestroyContext(egl_disp, egl_ctx);
-	        egl_ctx = EGL_NO_CONTEXT;
-	    }
-	    if (screen_win != NULL) {
-	        screen_destroy_window(screen_win);
-	        screen_win = NULL;
-	    }
-	    eglTerminate(egl_disp);
-	    egl_disp = EGL_NO_DISPLAY;
-	}
-	eglReleaseThread();
-}
-
-void
-bbutil_swap() {
-    int rc = eglSwapBuffers(egl_disp, egl_surf);
-    if (rc != EGL_TRUE) {
-        bbutil_egl_perror("eglSwapBuffers");
-    }
-}
-
-void
-bbutil_clear() {
-    glClear(GL_COLOR_BUFFER_BIT);
-}
-
-char *
-get_window_group_id()
-{
-	static char s_window_group_id[16] = "";
-
-	if (s_window_group_id[0] == '\0') {
-		snprintf(s_window_group_id, sizeof(s_window_group_id), "%d", getpid());
-	}
-
-	return s_window_group_id;
-}
-
-
-int bbutil_rotate_screen_surface(int angle) {
-	int rc, rotation, skip = 1, temp;
-	EGLint interval = 1;
-	int size[2];
-
-	if ((angle != 0) && (angle != 90) && (angle != 180) && (angle != 270)) {
-		fprintf(stderr, "Invalid angle\n");
-		return EXIT_FAILURE;
-	}
-
-	rc = screen_get_window_property_iv(screen_win, SCREEN_PROPERTY_ROTATION, &rotation);
-	if (rc) {
-		perror("screen_set_window_property_iv");
-		return EXIT_FAILURE;
-	}
-
-	rc = screen_get_window_property_iv(screen_win, SCREEN_PROPERTY_BUFFER_SIZE, size);
-	if (rc) {
-		perror("screen_set_window_property_iv");
-		return EXIT_FAILURE;
-	}
-
-	switch (angle - rotation) {
-		case -270:
-		case -90:
-		case 90:
-		case 270:
-			temp = size[0];
-			size[0] = size[1];
-			size[1] = temp;
-			skip = 0;
-			break;
-	}
-
-	if (!skip) {
-		rc = eglMakeCurrent(egl_disp, NULL, NULL, NULL);
-		if (rc != EGL_TRUE) {
-			bbutil_egl_perror("eglMakeCurrent");
-			return EXIT_FAILURE;
-		}
-
-		rc = eglDestroySurface(egl_disp, egl_surf);
-		if (rc != EGL_TRUE) {
-			bbutil_egl_perror("eglMakeCurrent");
-			return EXIT_FAILURE;
-		}
-
-		rc = screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_SOURCE_SIZE, size);
-		if (rc) {
-			perror("screen_set_window_property_iv");
-			return EXIT_FAILURE;
-		}
-
-		rc = screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_BUFFER_SIZE, size);
-		if (rc) {
-			perror("screen_set_window_property_iv");
-			return EXIT_FAILURE;
-		}
-		egl_surf = eglCreateWindowSurface(egl_disp, egl_conf, screen_win, NULL);
-		if (egl_surf == EGL_NO_SURFACE) {
-			bbutil_egl_perror("eglCreateWindowSurface");
-			return EXIT_FAILURE;
-		}
-
-		rc = eglMakeCurrent(egl_disp, egl_surf, egl_surf, egl_ctx);
-		if (rc != EGL_TRUE) {
-			bbutil_egl_perror("eglMakeCurrent");
-			return EXIT_FAILURE;
-		}
-
-		rc = eglSwapInterval(egl_disp, interval);
-		if (rc != EGL_TRUE) {
-			bbutil_egl_perror("eglSwapInterval");
-			return EXIT_FAILURE;
-		}
-	}
-
-	rc = screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_ROTATION, &angle);
-	if (rc) {
-		perror("screen_set_window_property_iv");
-		return EXIT_FAILURE;
-	}
-
-	return EXIT_SUCCESS;
-}
-

+ 0 - 88
platform/bb10/bbutil.h

@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2011-2013 Research In Motion Limited.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef _UTILITY_H_INCLUDED
-#define _UTILITY_H_INCLUDED
-
-#include <EGL/egl.h>
-#include <GLES2/gl2.h>
-#include <screen/screen.h>
-#include <sys/platform.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern EGLDisplay egl_disp;
-extern EGLSurface egl_surf;
-
-enum RENDERING_API {
-	GL_ES_1 = EGL_OPENGL_ES_BIT,
-	GL_ES_2 = EGL_OPENGL_ES2_BIT,
-	VG = EGL_OPENVG_BIT
-};
-
-/**
- * Initializes EGL, GL and loads a default font
- *
- * \param libscreen context that will be used for EGL setup
- * \return EXIT_SUCCESS if initialization succeeded otherwise EXIT_FAILURE
- */
-int bbutil_init(screen_context_t ctx, enum RENDERING_API api);
-
-/**
- * Initializes EGL
- *
- * \param libscreen context that will be used for EGL setup
- * \return EXIT_SUCCESS if initialization succeeded otherwise EXIT_FAILURE
- */
-int bbutil_init_egl(screen_context_t ctx, enum RENDERING_API api);
-
-/**
- * Initializes GL 1.1 for simple 2D rendering. GL2 initialization will be added at a later point.
- *
- * \return EXIT_SUCCESS if initialization succeeded otherwise EXIT_FAILURE
- */
-int bbutil_init_gl2d();
-
-int bbutil_is_flipped();
-int bbutil_get_rotation();
-
-char *get_window_group_id();
-
-int bbutil_rotate_screen_surface(int angle);
-
-/**
- * Terminates EGL
- */
-void bbutil_terminate();
-
-/**
- * Swaps default bbutil window surface to the screen
- */
-void bbutil_swap();
-
-/**
- * Clears the screen of any existing text.
- * NOTE: must be called after a successful return from bbutil_init() or bbutil_init_egl() call
- */
-void bbutil_clear();
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif

+ 0 - 92
platform/bb10/detect.py

@@ -1,92 +0,0 @@
-import os
-import sys
-import string
-import methods
-
-
-def is_active():
-    return True
-
-
-def get_name():
-    return "BlackBerry 10"
-
-
-def can_build():
-
-    import os
-    if (not os.environ.has_key("QNX_TARGET")):
-        return False
-    return True
-
-
-def get_opts():
-
-    return [
-        ('QNX_HOST', 'path to qnx host', os.environ.get("QNX_HOST", 0)),
-        ('QNX_TARGET', 'path to qnx target', os.environ.get("QNX_TARGET", 0)),
-        ('QNX_CONFIGURATION', 'path to qnx configuration', os.environ.get("QNX_CONFIGURATION", 0)),
-        ('qnx_target', 'Qnx target (armle or x86', 'armle'),
-        ('bb10_payment_service', 'Enable Payment Service for BlackBerry10', 'yes'),
-        ('bb10_lgles_override', 'Force legacy GLES (1.1) on iOS', 'no'),
-        ('bb10_exceptions', 'Use exceptions when compiling on bb10', 'no'),
-    ]
-
-
-def get_flags():
-
-    return [
-        ('tools', 'no'),
-        ('module_theora_enabled', 'no'),
-    ]
-
-
-def configure(env):
-
-    if env['PLATFORM'] == 'win32':
-        env.Tool('mingw')
-        env['SPAWN'] = methods.win32_spawn
-
-    env['qnx_target_ver'] = env['qnx_target']
-    if env['qnx_target'] == "armle":
-        env['qnx_prefix'] = 'ntoarmv7'
-        env['qnx_target_ver'] = 'armle-v7'
-    else:
-        env['qnx_prefix'] = 'ntox86'
-
-    env['OBJSUFFIX'] = ".qnx.${qnx_target}.o"
-    env['LIBSUFFIX'] = ".qnx.${qnx_target}.a"
-    env['PROGSUFFIX'] = ".qnx.${qnx_target}"
-    print("PROGSUFFIX: " + env['PROGSUFFIX'] + " target: " + env['qnx_target'])
-
-    env.PrependENVPath('PATH', env['QNX_CONFIGURATION'] + '/bin')
-    env.PrependENVPath('PATH', env['QNX_CONFIGURATION'] + '/usr/bin')
-    env['ENV']['QNX_HOST'] = env['QNX_HOST']
-    env['ENV']['QNX_TARGET'] = env['QNX_TARGET']
-    env['ENV']['QNX_CONFIGURATION'] = env['QNX_CONFIGURATION']
-
-    env['CC'] = '$qnx_prefix-gcc'
-    env['CXX'] = '$qnx_prefix-g++'
-    env['AR'] = '$qnx_prefix-ar'
-    env['RANLIB'] = '$qnx_prefix-ranlib'
-
-    env.Append(CPPPATH=['#platform/bb10'])
-    env.Append(LIBPATH=['#platform/bb10/lib/$qnx_target', '#platform/bb10/lib/$qnx_target_ver'])
-    env.Append(CCFLAGS=string.split('-DBB10_ENABLED -DUNIX_ENABLED -DGLES2_ENABLED -DGLES1_ENABLED -D_LITTLE_ENDIAN -DNO_THREADS -DNO_FCNTL'))
-    if env['bb10_exceptions'] == "yes":
-        env.Append(CCFLAGS=['-fexceptions'])
-    else:
-        env.Append(CCFLAGS=['-fno-exceptions'])
-
-    # env.Append(LINKFLAGS = string.split()
-
-    if (env["target"] == "release"):
-
-        env.Append(CCFLAGS=['-O3', '-DRELEASE_BUILD'])
-
-    elif (env["target"] == "debug"):
-
-        env.Append(CCFLAGS=['-g', '-O0', '-DDEBUG_ENABLED', '-D_DEBUG'])
-        env.Append(LINKFLAGS=['-g'])
-
-    env.Append(LIBS=['bps', 'pps', 'screen', 'socket', 'EGL', 'GLESv2', 'GLESv1_CM', 'm', 'asound'])

+ 0 - 829
platform/bb10/export/export.cpp

@@ -1,829 +0,0 @@
-/*************************************************************************/
-/*  export.cpp                                                           */
-/*************************************************************************/
-/*                       This file is part of:                           */
-/*                           GODOT ENGINE                                */
-/*                    http://www.godotengine.org                         */
-/*************************************************************************/
-/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur.                 */
-/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)    */
-/*                                                                       */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the       */
-/* "Software"), to deal in the Software without restriction, including   */
-/* without limitation the rights to use, copy, modify, merge, publish,   */
-/* distribute, sublicense, and/or sell copies of the Software, and to    */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions:                                             */
-/*                                                                       */
-/* The above copyright notice and this permission notice shall be        */
-/* included in all copies or substantial portions of the Software.       */
-/*                                                                       */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
-/*************************************************************************/
-#include "export.h"
-#include "editor/editor_export.h"
-#include "editor/editor_node.h"
-#include "editor/editor_settings.h"
-#include "global_config.h"
-#include "io/marshalls.h"
-#include "io/xml_parser.h"
-#include "io/zip_io.h"
-#include "os/file_access.h"
-#include "os/os.h"
-#include "platform/bb10/logo.h"
-#include "version.h"
-
-#define MAX_DEVICES 5
-#if 0
-class EditorExportPlatformBB10 : public EditorExportPlatform {
-
-	GDCLASS( EditorExportPlatformBB10,EditorExportPlatform );
-
-	String custom_package;
-
-	int version_code;
-	String version_name;
-	String package;
-	String name;
-	String category;
-	String description;
-	String author_name;
-	String author_id;
-	String icon;
-
-
-
-	struct Device {
-
-		int index;
-		String name;
-		String description;
-	};
-
-	Vector<Device> devices;
-	bool devices_changed;
-	Mutex *device_lock;
-	Thread *device_thread;
-	Ref<ImageTexture> logo;
-
-	volatile bool quit_request;
-
-
-	static void _device_poll_thread(void *ud);
-
-	void _fix_descriptor(Vector<uint8_t>& p_manifest);
-protected:
-
-	bool _set(const StringName& p_name, const Variant& p_value);
-	bool _get(const StringName& p_name,Variant &r_ret) const;
-	void _get_property_list( List<PropertyInfo> *p_list) const;
-
-public:
-
-	virtual String get_name() const { return "BlackBerry 10"; }
-	virtual ImageCompression get_image_compression() const { return IMAGE_COMPRESSION_ETC1; }
-	virtual Ref<Texture> get_logo() const { return logo; }
-
-
-	virtual bool poll_devices();
-	virtual int get_device_count() const;
-	virtual String get_device_name(int p_device) const;
-	virtual String get_device_info(int p_device) const;
-	virtual Error run(int p_device,int p_flags=0);
-
-	virtual bool requires_password(bool p_debug) const { return !p_debug; }
-	virtual String get_binary_extension() const { return "bar"; }
-	virtual Error export_project(const String& p_path,bool p_debug,int p_flags=0);
-
-	virtual bool can_export(String *r_error=NULL) const;
-
-	EditorExportPlatformBB10();
-	~EditorExportPlatformBB10();
-};
-
-bool EditorExportPlatformBB10::_set(const StringName& p_name, const Variant& p_value) {
-
-	String n=p_name;
-
-	if (n=="version/code")
-		version_code=p_value;
-	else if (n=="version/name")
-		version_name=p_value;
-	else if (n=="package/unique_name")
-		package=p_value;
-	else if (n=="package/category")
-		category=p_value;
-	else if (n=="package/name")
-		name=p_value;
-	else if (n=="package/description")
-		description=p_value;
-	else if (n=="package/icon")
-		icon=p_value;
-	else if (n=="package/custom_template")
-		custom_package=p_value;
-	else if (n=="release/author")
-		author_name=p_value;
-	else if (n=="release/author_id")
-		author_id=p_value;
-	else
-		return false;
-
-	return true;
-}
-
-bool EditorExportPlatformBB10::_get(const StringName& p_name,Variant &r_ret) const{
-
-	String n=p_name;
-
-	if (n=="version/code")
-		r_ret=version_code;
-	else if (n=="version/name")
-		r_ret=version_name;
-	else if (n=="package/unique_name")
-		r_ret=package;
-	else if (n=="package/category")
-		r_ret=category;
-	else if (n=="package/name")
-		r_ret=name;
-	else if (n=="package/description")
-		r_ret=description;
-	else if (n=="package/icon")
-		r_ret=icon;
-	else if (n=="package/custom_template")
-		r_ret=custom_package;
-	else if (n=="release/author")
-		r_ret=author_name;
-	else if (n=="release/author_id")
-		r_ret=author_id;
-	else
-		return false;
-
-	return true;
-}
-void EditorExportPlatformBB10::_get_property_list( List<PropertyInfo> *p_list) const{
-
-	p_list->push_back( PropertyInfo( Variant::INT, "version/code", PROPERTY_HINT_RANGE,"1,65535,1"));
-	p_list->push_back( PropertyInfo( Variant::STRING, "version/name") );
-	p_list->push_back( PropertyInfo( Variant::STRING, "package/unique_name") );
-	p_list->push_back( PropertyInfo( Variant::STRING, "package/category") );
-	p_list->push_back( PropertyInfo( Variant::STRING, "package/name") );
-	p_list->push_back( PropertyInfo( Variant::STRING, "package/description",PROPERTY_HINT_MULTILINE_TEXT) );
-	p_list->push_back( PropertyInfo( Variant::STRING, "package/icon",PROPERTY_HINT_FILE,"png") );
-	p_list->push_back( PropertyInfo( Variant::STRING, "package/custom_template", PROPERTY_HINT_GLOBAL_FILE,"zip"));
-	p_list->push_back( PropertyInfo( Variant::STRING, "release/author") );
-	p_list->push_back( PropertyInfo( Variant::STRING, "release/author_id") );
-
-	//p_list->push_back( PropertyInfo( Variant::INT, "resources/pack_mode", PROPERTY_HINT_ENUM,"Copy,Single Exec.,Pack (.pck),Bundles (Optical)"));
-
-}
-
-void EditorExportPlatformBB10::_fix_descriptor(Vector<uint8_t>& p_descriptor) {
-
-	String fpath =  EditorSettings::get_singleton()->get_settings_path().plus_file("tmp_bar-settings.xml");
-	{
-		FileAccessRef f = FileAccess::open(fpath,FileAccess::WRITE);
-		f->store_buffer(p_descriptor.ptr(),p_descriptor.size());
-	}
-
-	Ref<XMLParser> parser = memnew( XMLParser );
-	Error err = parser->open(fpath);
-	ERR_FAIL_COND(err!=OK);
-
-	String txt;
-	err = parser->read();
-	Vector<String> depth;
-
-	while(err!=ERR_FILE_EOF) {
-
-		ERR_FAIL_COND(err!=OK);
-
-		switch(parser->get_node_type()) {
-
-			case XMLParser::NODE_NONE: {
-				print_line("???");
-			} break;
-			case XMLParser::NODE_ELEMENT: {
-				String e="<";
-				e+=parser->get_node_name();
-				for(int i=0;i<parser->get_attribute_count();i++) {
-					e+=" ";
-					e+=parser->get_attribute_name(i)+"=\"";
-					e+=parser->get_attribute_value(i)+"\" ";
-				}
-
-
-
-				if (parser->is_empty()) {
-					e+="/";
-				} else {
-					depth.push_back(parser->get_node_name());
-				}
-
-				e+=">";
-				txt+=e;
-
-			} break;
-			case XMLParser::NODE_ELEMENT_END: {
-
-				txt+="</"+parser->get_node_name()+">";
-				if (depth.size() && depth[depth.size()-1]==parser->get_node_name()) {
-					depth.resize(depth.size()-1);
-				}
-
-
-			} break;
-			case XMLParser::NODE_TEXT: {
-				if (depth.size()==2 && depth[0]=="qnx" && depth[1]=="id") {
-
-					txt+=package;
-				} else if (depth.size()==2 && depth[0]=="qnx" && depth[1]=="name") {
-
-					String aname;
-					if (this->name!="") {
-						aname=this->name;
-					} else {
-						aname = GlobalConfig::get_singleton()->get("application/name");
-
-					}
-
-					if (aname=="") {
-						aname=_MKSTR(VERSION_NAME);
-					}
-
-					txt+=aname;
-
-				} else if (depth.size()==2 && depth[0]=="qnx" && depth[1]=="versionNumber") {
-					txt+=itos(version_code);
-				} else if (depth.size()==2 && depth[0]=="qnx" && depth[1]=="description") {
-					txt+=description;
-				} else if (depth.size()==2 && depth[0]=="qnx" && depth[1]=="author") {
-					txt+=author_name;
-				} else if (depth.size()==2 && depth[0]=="qnx" && depth[1]=="authorId") {
-					txt+=author_id;
-				} else if (depth.size()==2 && depth[0]=="qnx" && depth[1]=="category") {
-					txt+=category;
-				} else {
-					txt+=parser->get_node_data();
-				}
-			} break;
-			case XMLParser::NODE_COMMENT: {
-				txt+="<!--"+parser->get_node_name()+"-->";
-			} break;
-			case XMLParser::NODE_CDATA: {
-				//ignore
-				//print_line("cdata");
-			} break;
-			case XMLParser::NODE_UNKNOWN: {
-				//ignore
-				txt+="<"+parser->get_node_name()+">";
-			} break;
-		}
-
-		err = parser->read();
-	}
-
-
-	CharString cs = txt.utf8();
-	p_descriptor.resize(cs.length());
-	for(int i=0;i<cs.length();i++)
-		p_descriptor[i]=cs[i];
-
-}
-
-
-
-Error EditorExportPlatformBB10::export_project(const String& p_path, bool p_debug, int p_flags) {
-
-
-	EditorProgress ep("export","Exporting for BlackBerry 10",104);
-
-	String src_template=custom_package;
-
-	if (src_template=="") {
-		String err;
-		src_template = find_export_template("bb10.zip", &err);
-		if (src_template=="") {
-			EditorNode::add_io_error(err);
-			return ERR_FILE_NOT_FOUND;
-		}
-	}
-
-	FileAccess *src_f=NULL;
-	zlib_filefunc_def io = zipio_create_io_from_file(&src_f);
-
-	ep.step("Creating FileSystem for BAR",0);
-
-	unzFile pkg = unzOpen2(src_template.utf8().get_data(), &io);
-	if (!pkg) {
-
-		EditorNode::add_io_error("Could not find template zip to export:\n"+src_template);
-		return ERR_FILE_NOT_FOUND;
-	}
-
-	DirAccessRef da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
-	da->change_dir(EditorSettings::get_singleton()->get_settings_path());
-
-
-	if (da->change_dir("tmp")!=OK) {
-		da->make_dir("tmp");
-		if (da->change_dir("tmp")!=OK)
-			return ERR_CANT_CREATE;
-	}
-
-	if (da->change_dir("bb10_export")!=OK) {
-		da->make_dir("bb10_export");
-		if (da->change_dir("bb10_export")!=OK) {
-			return ERR_CANT_CREATE;
-		}
-	}
-
-
-	String bar_dir = da->get_current_dir();
-	if (bar_dir.ends_with("/")) {
-		bar_dir=bar_dir.substr(0,bar_dir.length()-1);
-	}
-
-	//THIS IS SUPER, SUPER DANGEROUS!!!!
-	//CAREFUL WITH THIS CODE, MIGHT DELETE USERS HARD DRIVE OR HOME DIR
-	//EXTRA CHECKS ARE IN PLACE EVERYWERE TO MAKE SURE NOTHING BAD HAPPENS BUT STILL....
-	//BE SUPER CAREFUL WITH THIS PLEASE!!!
-	//BLACKBERRY THIS IS YOUR FAULT FOR NOT MAKING A BETTER WAY!!
-
-	bool berr = bar_dir.ends_with("bb10_export");
-	if (berr) {
-		if (da->list_dir_begin()) {
-			EditorNode::add_io_error("Can't ensure that dir is empty:\n"+bar_dir);
-			ERR_FAIL_COND_V(berr,FAILED);
-		};
-
-		String f = da->get_next();
-		while (f != "") {
-
-			if (f == "." || f == "..") {
-				f = da->get_next();
-				continue;
-			};
-			Error err = da->remove(bar_dir + "/" + f);
-			if (err != OK) {
-				EditorNode::add_io_error("Can't ensure that dir is empty:\n"+bar_dir);
-				ERR_FAIL_COND_V(err!=OK,err);
-			};
-			f = da->get_next();
-		};
-
-		da->list_dir_end();
-
-	} else {
-		print_line("ARE YOU CRAZY??? THIS IS A SERIOUS BUG HERE!!!");
-		ERR_FAIL_V(ERR_OMFG_THIS_IS_VERY_VERY_BAD);
-	}
-
-
-	ERR_FAIL_COND_V(!pkg, ERR_CANT_OPEN);
-	int ret = unzGoToFirstFile(pkg);
-
-
-
-	while(ret==UNZ_OK) {
-
-		//get filename
-		unz_file_info info;
-		char fname[16384];
-		ret = unzGetCurrentFileInfo(pkg,&info,fname,16384,NULL,0,NULL,0);
-
-		String file=fname;
-
-		Vector<uint8_t> data;
-		data.resize(info.uncompressed_size);
-
-		//read
-		unzOpenCurrentFile(pkg);
-		unzReadCurrentFile(pkg,data.ptr(),data.size());
-		unzCloseCurrentFile(pkg);
-
-		//write
-
-		if (file=="bar-descriptor.xml") {
-
-			_fix_descriptor(data);
-		}
-
-		if (file=="icon.png") {
-			bool found=false;
-
-			if (this->icon!="" && this->icon.ends_with(".png")) {
-
-				FileAccess *f = FileAccess::open(this->icon,FileAccess::READ);
-				if (f) {
-
-					data.resize(f->get_len());
-					f->get_buffer(data.ptr(),data.size());
-					memdelete(f);
-					found=true;
-				}
-
-			}
-
-			if (!found) {
-
-				String appicon = GlobalConfig::get_singleton()->get("application/icon");
-				if (appicon!="" && appicon.ends_with(".png")) {
-					FileAccess*f = FileAccess::open(appicon,FileAccess::READ);
-					if (f) {
-						data.resize(f->get_len());
-						f->get_buffer(data.ptr(),data.size());
-						memdelete(f);
-					}
-				}
-			}
-		}
-
-
-		if (file.find("/")) {
-
-			da->make_dir_recursive(file.get_base_dir());
-		}
-
-		FileAccessRef wf = FileAccess::open(bar_dir.plus_file(file),FileAccess::WRITE);
-		wf->store_buffer(data.ptr(),data.size());
-
-		ret = unzGoToNextFile(pkg);
-	}
-
-	ep.step("Adding Files..",2);
-
-	FileAccess* dst = FileAccess::open(bar_dir+"/data.pck", FileAccess::WRITE);
-	if (!dst) {
-		EditorNode::add_io_error("Can't copy executable file to:\n "+p_path);
-		return ERR_FILE_CANT_WRITE;
-	}
-	save_pack(dst, false, 1024);
-	dst->close();
-	memdelete(dst);
-
-	ep.step("Creating BAR Package..",104);
-
-	String bb_packager=EditorSettings::get_singleton()->get("export/blackberry/host_tools");
-	bb_packager=bb_packager.plus_file("blackberry-nativepackager");
-	if (OS::get_singleton()->get_name()=="Windows")
-		bb_packager+=".bat";
-
-
-	if (!FileAccess::exists(bb_packager)) {
-		EditorNode::add_io_error("Can't find packager:\n"+bb_packager);
-		return ERR_CANT_OPEN;
-	}
-
-	List<String> args;
-	args.push_back("-package");
-	args.push_back(p_path);
-	if (p_debug) {
-
-		String debug_token=EditorSettings::get_singleton()->get("export/blackberry/debug_token");
-		if (!FileAccess::exists(debug_token)) {
-			EditorNode::add_io_error("Debug token not found!");
-		} else {
-			args.push_back("-debugToken");
-			args.push_back(debug_token);
-		}
-		args.push_back("-devMode");
-		args.push_back("-configuration");
-		args.push_back("Device-Debug");
-	} else {
-
-		args.push_back("-configuration");
-		args.push_back("Device-Release");
-	}
-	args.push_back(bar_dir.plus_file("bar-descriptor.xml"));
-
-	int ec;
-
-	Error err = OS::get_singleton()->execute(bb_packager,args,true,NULL,NULL,&ec);
-
-	if (err!=OK)
-		return err;
-	if (ec!=0)
-		return ERR_CANT_CREATE;
-
-	return OK;
-
-}
-
-bool EditorExportPlatformBB10::poll_devices() {
-
-	bool dc=devices_changed;
-	devices_changed=false;
-	return dc;
-}
-
-int EditorExportPlatformBB10::get_device_count() const {
-
-	device_lock->lock();
-	int dc=devices.size();
-	device_lock->unlock();
-
-	return dc;
-
-}
-String EditorExportPlatformBB10::get_device_name(int p_device) const {
-
-	ERR_FAIL_INDEX_V(p_device,devices.size(),"");
-	device_lock->lock();
-	String s=devices[p_device].name;
-	device_lock->unlock();
-	return s;
-}
-String EditorExportPlatformBB10::get_device_info(int p_device) const {
-
-	ERR_FAIL_INDEX_V(p_device,devices.size(),"");
-	device_lock->lock();
-	String s=devices[p_device].description;
-	device_lock->unlock();
-	return s;
-}
-
-void EditorExportPlatformBB10::_device_poll_thread(void *ud) {
-
-	EditorExportPlatformBB10 *ea=(EditorExportPlatformBB10 *)ud;
-
-	while(!ea->quit_request) {
-
-		String bb_deploy=EditorSettings::get_singleton()->get("export/blackberry/host_tools");
-		bb_deploy=bb_deploy.plus_file("blackberry-deploy");
-		bool windows = OS::get_singleton()->get_name()=="Windows";
-		if (windows)
-			bb_deploy+=".bat";
-
-		if (FileAccess::exists(bb_deploy)) {
-
-			Vector<Device> devices;
-
-
-			for (int i=0;i<MAX_DEVICES;i++) {
-
-				String host = EditorSettings::get_singleton()->get("export/blackberry/device_"+itos(i+1)+"/host");
-				if (host==String())
-					continue;
-				String pass = EditorSettings::get_singleton()->get("export/blackberry/device_"+itos(i+1)+"/password");
-				if (pass==String())
-					continue;
-
-				List<String> args;
-				args.push_back("-listDeviceInfo");
-				args.push_back(host);
-				args.push_back("-password");
-				args.push_back(pass);
-
-
-				int ec;
-				String dp;
-
-				Error err = OS::get_singleton()->execute(bb_deploy,args,true,NULL,&dp,&ec);
-
-				if (err==OK && ec==0) {
-
-					Device dev;
-					dev.index=i;
-					String descr;
-					Vector<String> ls=dp.split("\n");
-
-					for(int i=0;i<ls.size();i++) {
-
-						String l = ls[i].strip_edges();
-						if (l.begins_with("modelfullname::")) {
-							dev.name=l.get_slice("::",1);
-							descr+="Model: "+dev.name+"\n";
-						}
-						if (l.begins_with("modelnumber::")) {
-							String s = l.get_slice("::",1);
-							dev.name+=" ("+s+")";
-							descr+="Model Number: "+s+"\n";
-						}
-						if (l.begins_with("scmbundle::"))
-							descr+="OS Version: "+l.get_slice("::",1)+"\n";
-						if (l.begins_with("[n]debug_token_expiration::"))
-							descr+="Debug Token Expires:: "+l.get_slice("::",1)+"\n";
-
-					}
-
-					dev.description=descr;
-					devices.push_back(dev);
-				}
-
-			}
-
-			bool changed=false;
-
-
-			ea->device_lock->lock();
-
-			if (ea->devices.size()!=devices.size()) {
-				changed=true;
-			} else {
-
-				for(int i=0;i<ea->devices.size();i++) {
-
-					if (ea->devices[i].index!=devices[i].index) {
-						changed=true;
-						break;
-					}
-				}
-			}
-
-			if (changed) {
-
-				ea->devices=devices;
-				ea->devices_changed=true;
-			}
-
-			ea->device_lock->unlock();
-		}
-
-
-		uint64_t wait = 3000000;
-		uint64_t time = OS::get_singleton()->get_ticks_usec();
-		while(OS::get_singleton()->get_ticks_usec() - time < wait ) {
-			OS::get_singleton()->delay_usec(1000);
-			if (ea->quit_request)
-				break;
-		}
-	}
-
-}
-
-Error EditorExportPlatformBB10::run(int p_device, int p_flags) {
-
-	ERR_FAIL_INDEX_V(p_device,devices.size(),ERR_INVALID_PARAMETER);
-
-	String bb_deploy=EditorSettings::get_singleton()->get("export/blackberry/host_tools");
-	bb_deploy=bb_deploy.plus_file("blackberry-deploy");
-	if (OS::get_singleton()->get_name()=="Windows")
-		bb_deploy+=".bat";
-
-	if (!FileAccess::exists(bb_deploy)) {
-		EditorNode::add_io_error("Blackberry Deploy not found:\n"+bb_deploy);
-		return ERR_FILE_NOT_FOUND;
-	}
-
-
-	device_lock->lock();
-
-
-	EditorProgress ep("run","Running on "+devices[p_device].name,3);
-
-	//export_temp
-	ep.step("Exporting APK",0);
-
-	String export_to=EditorSettings::get_singleton()->get_settings_path().plus_file("/tmp/tmpexport.bar");
-	Error err = export_project(export_to,true,p_flags);
-	if (err) {
-		device_lock->unlock();
-		return err;
-	}
-#if 0
-	ep.step("Uninstalling..",1);
-
-	print_line("Uninstalling previous version: "+devices[p_device].name);
-	List<String> args;
-	args.push_back("-s");
-	args.push_back(devices[p_device].id);
-	args.push_back("uninstall");
-	args.push_back(package);
-	int rv;
-	err = OS::get_singleton()->execute(adb,args,true,NULL,NULL,&rv);
-
-	if (err || rv!=0) {
-		EditorNode::add_io_error("Could not install to device.");
-		device_lock->unlock();
-		return ERR_CANT_CREATE;
-	}
-
-	print_line("Installing into device (please wait..): "+devices[p_device].name);
-
-#endif
-	ep.step("Installing to Device (please wait..)..",2);
-
-	List<String> args;
-	args.clear();
-	args.push_back("-installApp");
-	args.push_back("-launchApp");
-	args.push_back("-device");
-	String host = EditorSettings::get_singleton()->get("export/blackberry/device_"+itos(p_device+1)+"/host");
-	String pass = EditorSettings::get_singleton()->get("export/blackberry/device_"+itos(p_device+1)+"/password");
-	args.push_back(host);
-	args.push_back("-password");
-	args.push_back(pass);
-	args.push_back(export_to);
-
-	int rv;
-	err = OS::get_singleton()->execute(bb_deploy,args,true,NULL,NULL,&rv);
-	if (err || rv!=0) {
-		EditorNode::add_io_error("Could not install to device.");
-		device_lock->unlock();
-		return ERR_CANT_CREATE;
-	}
-
-	device_lock->unlock();
-	return OK;
-
-
-}
-
-
-EditorExportPlatformBB10::EditorExportPlatformBB10() {
-
-	version_code=1;
-	version_name="1.0";
-	package="com.godot.noname";
-	category="core.games";
-	name="";
-	author_name="Cert. Name";
-	author_id="Cert. ID";
-	description="Game made with Godot Engine";
-
-	device_lock = Mutex::create();
-	quit_request=false;
-
-	device_thread=Thread::create(_device_poll_thread,this);
-	devices_changed=true;
-
-	Image img( _bb10_logo );
-	logo = Ref<ImageTexture>( memnew( ImageTexture ));
-	logo->create_from_image(img);
-}
-
-bool EditorExportPlatformBB10::can_export(String *r_error) const {
-
-	bool valid=true;
-	String bb_deploy=EditorSettings::get_singleton()->get("export/blackberry/host_tools");
-	String err;
-
-	if (!FileAccess::exists(bb_deploy.plus_file("blackberry-deploy"))) {
-
-		valid=false;
-		err+="Blackberry host tools not configured in editor settings.\n";
-	}
-
-	if (!exists_export_template("bb10.zip")) {
-		valid=false;
-		err+="No export template found.\nDownload and install export templates.\n";
-	}
-
-	String debug_token=EditorSettings::get_singleton()->get("export/blackberry/debug_token");
-
-	if (!FileAccess::exists(debug_token)) {
-		valid=false;
-		err+="No debug token set, will not be able to test on device.\n";
-	}
-
-
-	if (custom_package!="" && !FileAccess::exists(custom_package)) {
-		valid=false;
-		err+="Custom release package not found.\n";
-	}
-
-	if (r_error)
-		*r_error=err;
-
-	return valid;
-}
-
-
-EditorExportPlatformBB10::~EditorExportPlatformBB10() {
-
-	quit_request=true;
-	Thread::wait_to_finish(device_thread);
-	memdelete(device_lock);
-	memdelete(device_thread);
-}
-
-#endif
-void register_bb10_exporter() {
-#if 0
-	EDITOR_DEF("export/blackberry/host_tools","");
-	EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING,"export/blackberry/host_tools",PROPERTY_HINT_GLOBAL_DIR));
-	EDITOR_DEF("export/blackberry/debug_token","");
-	EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING,"export/blackberry/debug_token",PROPERTY_HINT_GLOBAL_FILE,"bar"));
-	EDITOR_DEF("export/blackberry/device_1/host","");
-	EDITOR_DEF("export/blackberry/device_1/password","");
-	EDITOR_DEF("export/blackberry/device_2/host","");
-	EDITOR_DEF("export/blackberry/device_2/password","");
-	EDITOR_DEF("export/blackberry/device_3/host","");
-	EDITOR_DEF("export/blackberry/device_3/password","");
-	EDITOR_DEF("export/blackberry/device_4/host","");
-	EDITOR_DEF("export/blackberry/device_4/password","");
-	EDITOR_DEF("export/blackberry/device_5/host","");
-	EDITOR_DEF("export/blackberry/device_5/password","");
-
-	Ref<EditorExportPlatformBB10> exporter = Ref<EditorExportPlatformBB10>( memnew(EditorExportPlatformBB10) );
-	EditorImportExport::get_singleton()->add_export_platform(exporter);
-
-#endif
-}

+ 0 - 30
platform/bb10/export/export.h

@@ -1,30 +0,0 @@
-/*************************************************************************/
-/*  export.h                                                             */
-/*************************************************************************/
-/*                       This file is part of:                           */
-/*                           GODOT ENGINE                                */
-/*                    http://www.godotengine.org                         */
-/*************************************************************************/
-/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur.                 */
-/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)    */
-/*                                                                       */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the       */
-/* "Software"), to deal in the Software without restriction, including   */
-/* without limitation the rights to use, copy, modify, merge, publish,   */
-/* distribute, sublicense, and/or sell copies of the Software, and to    */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions:                                             */
-/*                                                                       */
-/* The above copyright notice and this permission notice shall be        */
-/* included in all copies or substantial portions of the Software.       */
-/*                                                                       */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
-/*************************************************************************/
-void register_bb10_exporter();

+ 0 - 48
platform/bb10/godot_bb10.cpp

@@ -1,48 +0,0 @@
-/*************************************************************************/
-/*  godot_bb10.cpp                                                       */
-/*************************************************************************/
-/*                       This file is part of:                           */
-/*                           GODOT ENGINE                                */
-/*                    http://www.godotengine.org                         */
-/*************************************************************************/
-/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur.                 */
-/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)    */
-/*                                                                       */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the       */
-/* "Software"), to deal in the Software without restriction, including   */
-/* without limitation the rights to use, copy, modify, merge, publish,   */
-/* distribute, sublicense, and/or sell copies of the Software, and to    */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions:                                             */
-/*                                                                       */
-/* The above copyright notice and this permission notice shall be        */
-/* included in all copies or substantial portions of the Software.       */
-/*                                                                       */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
-/*************************************************************************/
-#include "main/main.h"
-#include "os_bb10.h"
-
-#include <unistd.h>
-
-int main(int argc, char *argv[]) {
-
-	OSBB10 os;
-
-	Error err = Main::setup(argv[0], argc - 1, &argv[1]);
-	if (err != OK)
-		return 255;
-
-	if (Main::start())
-		os.run(); // it is actually the OS that decides how to run
-	Main::cleanup();
-
-	return os.get_exit_code();
-}

BIN
platform/bb10/logo.png


+ 0 - 608
platform/bb10/os_bb10.cpp

@@ -1,608 +0,0 @@
-/*************************************************************************/
-/*  os_bb10.cpp                                                          */
-/*************************************************************************/
-/*                       This file is part of:                           */
-/*                           GODOT ENGINE                                */
-/*                    http://www.godotengine.org                         */
-/*************************************************************************/
-/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur.                 */
-/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)    */
-/*                                                                       */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the       */
-/* "Software"), to deal in the Software without restriction, including   */
-/* without limitation the rights to use, copy, modify, merge, publish,   */
-/* distribute, sublicense, and/or sell copies of the Software, and to    */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions:                                             */
-/*                                                                       */
-/* The above copyright notice and this permission notice shall be        */
-/* included in all copies or substantial portions of the Software.       */
-/*                                                                       */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
-/*************************************************************************/
-#include "os_bb10.h"
-
-#include "bbutil.h"
-#include "core/global_config.h"
-#include "core/os/dir_access.h"
-#include "core/os/keyboard.h"
-#include "drivers/gles2/rasterizer_gles2.h"
-#include "main/main.h"
-#include "servers/visual/visual_server_raster.h"
-
-#include <assert.h>
-#include <bps/accelerometer.h>
-#include <bps/audiodevice.h>
-#include <bps/bps.h>
-#include <bps/navigator.h>
-#include <bps/orientation.h>
-#include <bps/screen.h>
-#include <bps/virtualkeyboard.h>
-#include <stdbool.h>
-#include <stdlib.h>
-
-#ifdef BB10_SCORELOOP_ENABLED
-#include "modules/scoreloop/scoreloop_bb10.h"
-#endif
-
-static char launch_dir[512];
-char *launch_dir_ptr;
-
-int OSBB10::get_video_driver_count() const {
-
-	return 1;
-}
-const char *OSBB10::get_video_driver_name(int p_driver) const {
-
-	return "GLES2";
-}
-
-OS::VideoMode OSBB10::get_default_video_mode() const {
-
-	return OS::VideoMode();
-}
-
-int OSBB10::get_audio_driver_count() const {
-
-	return 1;
-}
-const char *OSBB10::get_audio_driver_name(int p_driver) const {
-
-	return "BB10";
-}
-
-void OSBB10::initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver) {
-
-	data_dir = getenv("HOME");
-
-	//Create a screen context that will be used to create an EGL surface to to receive libscreen events
-	screen_create_context(&screen_cxt, 0);
-
-	//Initialize BPS library
-	bps_initialize();
-
-	//Use utility code to initialize EGL for 2D rendering with GL ES 1.1
-	enum RENDERING_API api = GL_ES_2;
-#ifdef BB10_LGLES_OVERRIDE
-	api = GL_ES_1;
-#endif
-	if (EXIT_SUCCESS != bbutil_init(screen_cxt, api)) {
-		bbutil_terminate();
-		screen_destroy_context(screen_cxt);
-		return;
-	};
-
-	EGLint surface_width, surface_height;
-
-	eglQuerySurface(egl_disp, egl_surf, EGL_WIDTH, &surface_width);
-	eglQuerySurface(egl_disp, egl_surf, EGL_HEIGHT, &surface_height);
-	printf("screen size: %ix%i\n", surface_width, surface_height);
-	VideoMode mode;
-	mode.width = surface_width;
-	mode.height = surface_height;
-	mode.fullscreen = true;
-	mode.resizable = false;
-	set_video_mode(mode);
-
-	//Signal BPS library that navigator and screen events will be requested
-	screen_request_events(screen_cxt);
-	navigator_request_events(0);
-	virtualkeyboard_request_events(0);
-	audiodevice_request_events(0);
-
-#ifdef DEBUG_ENABLED
-	bps_set_verbosity(3);
-#endif
-
-	accel_supported = accelerometer_is_supported();
-	if (accel_supported)
-		accelerometer_set_update_frequency(FREQ_40_HZ);
-	pitch = 0;
-	roll = 0;
-
-#ifdef BB10_LGLES_OVERRIDE
-	rasterizer = memnew(RasterizerGLES1(false));
-#else
-	rasterizer = memnew(RasterizerGLES2(false, false));
-#endif
-
-	visual_server = memnew(VisualServerRaster(rasterizer));
-	visual_server->init();
-	visual_server->cursor_set_visible(false, 0);
-
-	audio_driver = memnew(AudioDriverBB10);
-	audio_driver->set_singleton();
-	audio_driver->init(NULL);
-
-	physics_server = memnew(PhysicsServerSW);
-	physics_server->init();
-	physics_2d_server = memnew(Physics2DServerSW);
-	physics_2d_server->init();
-
-	input = memnew(InputDefault);
-
-	power_manager = memnew(PowerBB10);
-
-#ifdef PAYMENT_SERVICE_ENABLED
-	payment_service = memnew(PaymentService);
-	Globals::get_singleton()->add_singleton(Globals::Singleton("InAppStore", payment_service));
-#endif
-}
-
-void OSBB10::set_main_loop(MainLoop *p_main_loop) {
-
-	input->set_main_loop(p_main_loop);
-	main_loop = p_main_loop;
-}
-
-void OSBB10::delete_main_loop() {
-
-	memdelete(main_loop);
-	main_loop = NULL;
-}
-
-void OSBB10::finalize() {
-
-	if (main_loop)
-		memdelete(main_loop);
-	main_loop = NULL;
-
-	/*
-	if (debugger_connection_console) {
-		memdelete(debugger_connection_console);
-	}
-	*/
-
-	visual_server->finish();
-	memdelete(visual_server);
-	memdelete(rasterizer);
-
-	physics_server->finish();
-	memdelete(physics_server);
-
-	physics_2d_server->finish();
-	memdelete(physics_2d_server);
-
-#ifdef PAYMENT_SERVICE_ENABLED
-	memdelete(payment_service);
-#endif
-
-	memdelete(input);
-
-	bbutil_terminate();
-	screen_destroy_context(screen_cxt);
-
-	bps_shutdown();
-}
-
-void OSBB10::set_mouse_show(bool p_show) {
-
-	//android has no mouse...
-}
-
-void OSBB10::set_mouse_grab(bool p_grab) {
-
-	//it really has no mouse...!
-}
-
-bool OSBB10::is_mouse_grab_enabled() const {
-
-	//*sigh* technology has evolved so much since i was a kid..
-	return false;
-}
-Point2 OSBB10::get_mouse_position() const {
-
-	return Point2();
-}
-int OSBB10::get_mouse_button_state() const {
-
-	return 0;
-}
-void OSBB10::set_window_title(const String &p_title) {
-}
-
-//interesting byt not yet
-//void set_clipboard(const String& p_text);
-//String get_clipboard() const;
-
-void OSBB10::set_video_mode(const VideoMode &p_video_mode, int p_screen) {
-
-	default_videomode = p_video_mode;
-}
-
-OS::VideoMode OSBB10::get_video_mode(int p_screen) const {
-
-	return default_videomode;
-}
-void OSBB10::get_fullscreen_mode_list(List<VideoMode> *p_list, int p_screen) const {
-
-	p_list->push_back(default_videomode);
-}
-
-String OSBB10::get_name() {
-
-	return "BlackBerry 10";
-}
-
-MainLoop *OSBB10::get_main_loop() const {
-
-	return main_loop;
-}
-
-bool OSBB10::can_draw() const {
-
-	return !minimized;
-}
-
-void OSBB10::set_cursor_shape(CursorShape p_shape) {
-
-	//android really really really has no mouse.. how amazing..
-}
-
-void OSBB10::handle_screen_event(bps_event_t *event) {
-
-	screen_event_t screen_event = screen_event_get_event(event);
-
-	int screen_val;
-	screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_TYPE, &screen_val);
-
-	int pos[2];
-
-	switch (screen_val) {
-		case SCREEN_EVENT_MTOUCH_TOUCH:
-		case SCREEN_EVENT_MTOUCH_RELEASE: {
-
-			screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_POSITION, pos);
-
-			InputEvent ievent;
-			ievent.type = InputEvent::SCREEN_TOUCH;
-			ievent.device = 0;
-			ievent.screen_touch.pressed = (screen_val == SCREEN_EVENT_MTOUCH_TOUCH);
-			ievent.screen_touch.x = pos[0];
-			ievent.screen_touch.y = pos[1];
-			Point2 mpos(ievent.screen_touch.x, ievent.screen_touch.y);
-
-			screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_TOUCH_ID, &pos[0]);
-			ievent.screen_touch.index = pos[0];
-
-			last_touch_x[pos[0]] = ievent.screen_touch.x;
-			last_touch_y[pos[0]] = ievent.screen_touch.y;
-
-			input->parse_input_event(ievent);
-
-			if (ievent.screen_touch.index == 0) {
-
-				InputEvent ievent;
-				ievent.type = InputEvent::MOUSE_BUTTON;
-				ievent.device = 0;
-				ievent.mouse_button.pressed = (screen_val == SCREEN_EVENT_MTOUCH_TOUCH);
-				ievent.mouse_button.button_index = BUTTON_LEFT;
-				ievent.mouse_button.doubleclick = 0;
-				ievent.mouse_button.x = ievent.mouse_button.global_x = mpos.x;
-				ievent.mouse_button.y = ievent.mouse_button.global_y = mpos.y;
-				input->parse_input_event(ievent);
-			};
-
-		} break;
-		case SCREEN_EVENT_MTOUCH_MOVE: {
-
-			screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_POSITION, pos);
-
-			InputEvent ievent;
-			ievent.type = InputEvent::SCREEN_DRAG;
-			ievent.device = 0;
-			ievent.screen_drag.x = pos[0];
-			ievent.screen_drag.y = pos[1];
-
-			/*
-		screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_SOURCE_POSITION, pos);
-		ievent.screen_drag.relative_x = ievent.screen_drag.x - pos[0];
-		ievent.screen_drag.relative_y = ievent.screen_drag.y - pos[1];
-		*/
-
-			screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_TOUCH_ID, &pos[0]);
-			ievent.screen_drag.index = pos[0];
-
-			ievent.screen_drag.relative_x = ievent.screen_drag.x - last_touch_x[ievent.screen_drag.index];
-			ievent.screen_drag.relative_y = ievent.screen_drag.y - last_touch_y[ievent.screen_drag.index];
-
-			last_touch_x[ievent.screen_drag.index] = ievent.screen_drag.x;
-			last_touch_y[ievent.screen_drag.index] = ievent.screen_drag.y;
-
-			Point2 mpos(ievent.screen_drag.x, ievent.screen_drag.y);
-			Point2 mrel(ievent.screen_drag.relative_x, ievent.screen_drag.relative_y);
-
-			input->parse_input_event(ievent);
-
-			if (ievent.screen_touch.index == 0) {
-
-				InputEvent ievent;
-				ievent.type = InputEvent::MOUSE_MOTION;
-				ievent.device = 0;
-				ievent.mouse_motion.x = ievent.mouse_motion.global_x = mpos.x;
-				ievent.mouse_motion.y = ievent.mouse_motion.global_y = mpos.y;
-				input->set_mouse_position(Point2(ievent.mouse_motion.x, ievent.mouse_motion.y));
-				ievent.mouse_motion.speed_x = input->get_last_mouse_speed().x;
-				ievent.mouse_motion.speed_y = input->get_last_mouse_speed().y;
-				ievent.mouse_motion.relative_x = mrel.x;
-				ievent.mouse_motion.relative_y = mrel.y;
-				ievent.mouse_motion.button_mask = 1; // pressed
-
-				input->parse_input_event(ievent);
-			};
-		} break;
-
-		case SCREEN_EVENT_KEYBOARD: {
-
-			InputEvent ievent;
-			ievent.type = InputEvent::KEY;
-			ievent.device = 0;
-			int val = 0;
-			screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_KEY_SCAN, &val);
-			ievent.key.scancode = val;
-			screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_KEY_SYM, &val);
-			ievent.key.unicode = val;
-			if (val == 61448) {
-				ievent.key.scancode = KEY_BACKSPACE;
-				ievent.key.unicode = KEY_BACKSPACE;
-			};
-			if (val == 61453) {
-				ievent.key.scancode = KEY_ENTER;
-				ievent.key.unicode = KEY_ENTER;
-			};
-
-			int flags;
-			screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_KEY_FLAGS, &flags);
-			ievent.key.pressed = flags & 1; // bit 1 is pressed apparently
-
-			int mod;
-			screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_KEY_MODIFIERS, &mod);
-
-			input->parse_input_event(ievent);
-		} break;
-
-		default:
-			break;
-	}
-};
-
-void OSBB10::handle_accelerometer() {
-
-	if (!accel_supported)
-		return;
-
-	if (!fullscreen)
-		return;
-
-	double force_x, force_y, force_z;
-	accelerometer_read_forces(&force_x, &force_y, &force_z);
-	Vector3 accel = Vector3(force_x, flip_accelerometer ? force_y : -force_y, force_z);
-	input->set_accelerometer(accel);
-	// rotate 90 degrees
-	//input->set_accelerometer(Vector3(force_y, flip_accelerometer?force_x:(-force_x), force_z));
-};
-
-void OSBB10::_resize(bps_event_t *event) {
-
-	int angle = navigator_event_get_orientation_angle(event);
-	bbutil_rotate_screen_surface(angle);
-
-	EGLint surface_width, surface_height;
-	eglQuerySurface(egl_disp, egl_surf, EGL_WIDTH, &surface_width);
-	eglQuerySurface(egl_disp, egl_surf, EGL_HEIGHT, &surface_height);
-
-	VideoMode mode;
-	mode.width = surface_width;
-	mode.height = surface_height;
-	mode.fullscreen = true;
-	mode.resizable = false;
-	set_video_mode(mode);
-};
-
-void OSBB10::process_events() {
-
-	handle_accelerometer();
-
-	bps_event_t *event = NULL;
-
-	do {
-		int rc = bps_get_event(&event, 0);
-		assert(rc == BPS_SUCCESS);
-
-		if (!event) break;
-
-#ifdef BB10_SCORELOOP_ENABLED
-		ScoreloopBB10 *sc = Globals::get_singleton()->get_singleton_object("Scoreloop")->cast_to<ScoreloopBB10>();
-		if (sc->handle_event(event))
-			continue;
-#endif
-
-#ifdef PAYMENT_SERVICE_ENABLED
-		if (payment_service->handle_event(event))
-			continue;
-#endif
-
-		int domain = bps_event_get_domain(event);
-		if (domain == screen_get_domain()) {
-
-			handle_screen_event(event);
-
-		} else if (domain == navigator_get_domain()) {
-
-			if (NAVIGATOR_EXIT == bps_event_get_code(event)) {
-				if (main_loop)
-					main_loop->notification(MainLoop::NOTIFICATION_WM_QUIT_REQUEST);
-				bps_event_destroy(event);
-				exit(0);
-				return;
-				/*
-			} else if (bps_event_get_code(event) == NAVIGATOR_ORIENTATION_CHECK) {
-
-				int angle = navigator_event_get_orientation_angle(event);
-				navigator_orientation_check_response(event, false);
-
-			} else if (bps_event_get_code(event) == NAVIGATOR_ORIENTATION) {
-
-				_resize(event);
-			*/
-			} else if (bps_event_get_code(event) == NAVIGATOR_WINDOW_STATE) {
-
-				int state = navigator_event_get_window_state(event);
-				bool was_fullscreen = fullscreen;
-				minimized = state == NAVIGATOR_WINDOW_INVISIBLE;
-				fullscreen = state == NAVIGATOR_WINDOW_FULLSCREEN;
-				set_low_processor_usage_mode(!fullscreen);
-				if (fullscreen != was_fullscreen) {
-					if (fullscreen) {
-						audio_server->set_fx_global_volume_scale(fullscreen_mixer_volume);
-						audio_server->set_stream_global_volume_scale(fullscreen_stream_volume);
-					} else {
-						fullscreen_mixer_volume = audio_server->get_fx_global_volume_scale();
-						fullscreen_stream_volume = audio_server->get_stream_global_volume_scale();
-						audio_server->set_fx_global_volume_scale(0);
-						audio_server->set_stream_global_volume_scale(0);
-					};
-				};
-			};
-		} else if (domain == audiodevice_get_domain()) {
-
-			const char *audiodevice_path = audiodevice_event_get_path(event);
-			printf("************* got audiodevice event, path %s\n", audiodevice_path);
-			audio_driver->finish();
-			audio_driver->init(audiodevice_path);
-			audio_driver->start();
-		};
-
-		//bps_event_destroy(event);
-	} while (event);
-};
-
-bool OSBB10::has_virtual_keyboard() const {
-
-	return true;
-};
-
-void OSBB10::show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect) {
-
-	virtualkeyboard_show();
-};
-
-void OSBB10::hide_virtual_keyboard() {
-
-	virtualkeyboard_hide();
-};
-
-void OSBB10::run() {
-
-	if (!main_loop)
-		return;
-
-	main_loop->init();
-
-	int flip = bbutil_is_flipped();
-	int rot = bbutil_get_rotation();
-	flip_accelerometer = rot == 90;
-	printf("**************** rot is %i, flip %i\n", rot, (int)flip_accelerometer);
-	/*
-	orientation_direction_t orientation;
-	int angle;
-	orientation_get(&orientation, &angle);
-	printf("******************** orientation %i, %i, %i\n", orientation, ORIENTATION_BOTTOM_UP, ORIENTATION_TOP_UP);
-	if (orientation == ORIENTATION_BOTTOM_UP) {
-		flip_accelerometer = true;
-	};
-	*/
-
-	while (true) {
-
-		process_events(); // get rid of pending events
-		if (Main::iteration() == true)
-			break;
-		bbutil_swap();
-		//#ifdef DEBUG_ENABLED
-		fflush(stdout);
-		//#endif
-	};
-
-	main_loop->finish();
-};
-
-bool OSBB10::has_touchscreen_ui_hint() const {
-
-	return true;
-}
-
-Error OSBB10::shell_open(String p_uri) {
-
-	char *msg = NULL;
-	int ret = navigator_invoke(p_uri.utf8().get_data(), &msg);
-
-	return ret == BPS_SUCCESS ? OK : FAILED;
-};
-
-String OSBB10::get_data_dir() const {
-
-	return data_dir;
-};
-
-Size2 OSBB10::get_window_size() const {
-	return Vector2(default_videomode.width, default_videomode.height);
-}
-
-PowerState OSBB10::get_power_state() {
-	return power_manager->get_power_state();
-}
-
-int OSBB10::get_power_seconds_left() {
-	return power_manager->get_power_seconds_left();
-}
-
-int OSBB10::get_power_percent_left() {
-	return power_manager->get_power_percent_left();
-}
-
-OSBB10::OSBB10() {
-
-	main_loop = NULL;
-	minimized = false;
-	fullscreen = true;
-	flip_accelerometer = true;
-	fullscreen_mixer_volume = 1;
-	fullscreen_stream_volume = 1;
-
-	printf("godot bb10!\n");
-	getcwd(launch_dir, sizeof(launch_dir));
-	printf("launch dir %s\n", launch_dir);
-	chdir("app/native");
-	launch_dir_ptr = launch_dir;
-}
-
-OSBB10::~OSBB10() {
-}

+ 0 - 153
platform/bb10/os_bb10.h

@@ -1,153 +0,0 @@
-/*************************************************************************/
-/*  os_bb10.h                                                            */
-/*************************************************************************/
-/*                       This file is part of:                           */
-/*                           GODOT ENGINE                                */
-/*                    http://www.godotengine.org                         */
-/*************************************************************************/
-/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur.                 */
-/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)    */
-/*                                                                       */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the       */
-/* "Software"), to deal in the Software without restriction, including   */
-/* without limitation the rights to use, copy, modify, merge, publish,   */
-/* distribute, sublicense, and/or sell copies of the Software, and to    */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions:                                             */
-/*                                                                       */
-/* The above copyright notice and this permission notice shall be        */
-/* included in all copies or substantial portions of the Software.       */
-/*                                                                       */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
-/*************************************************************************/
-#ifndef OS_BB10_H
-#define OS_BB10_H
-
-#include "audio_driver_bb10.h"
-#include "drivers/unix/os_unix.h"
-#include "main/input_default.h"
-#include "os/input.h"
-#include "os/main_loop.h"
-#include "payment_service.h"
-#include "power_bb10.h"
-#include "servers/audio_server.h"
-#include "servers/physics/physics_server_sw.h"
-#include "servers/physics_2d/physics_2d_server_sw.h"
-#include "servers/visual/rasterizer.h"
-
-#include <bps/event.h>
-#include <screen/screen.h>
-#include <stdint.h>
-#include <sys/platform.h>
-
-class OSBB10 : public OS_Unix {
-
-	screen_context_t screen_cxt;
-	float fullscreen_mixer_volume;
-	float fullscreen_stream_volume;
-
-	Rasterizer *rasterizer;
-	VisualServer *visual_server;
-	PhysicsServer *physics_server;
-	Physics2DServer *physics_2d_server;
-	AudioDriverBB10 *audio_driver;
-	PowerBB10 *power_manager;
-
-#ifdef PAYMENT_SERVICE_ENABLED
-	PaymentService *payment_service;
-#endif
-
-	VideoMode default_videomode;
-	MainLoop *main_loop;
-
-	void process_events();
-
-	void _resize(bps_event_t *event);
-	void handle_screen_event(bps_event_t *event);
-	void handle_accelerometer();
-
-	int last_touch_x[16];
-	int last_touch_y[16];
-
-	bool accel_supported;
-	float pitch;
-	float roll;
-
-	bool minimized;
-	bool fullscreen;
-	bool flip_accelerometer;
-	String data_dir;
-
-	InputDefault *input;
-
-public:
-	// functions used by main to initialize/deintialize the OS
-	virtual int get_video_driver_count() const;
-	virtual const char *get_video_driver_name(int p_driver) const;
-
-	virtual VideoMode get_default_video_mode() const;
-
-	virtual String get_data_dir() const;
-
-	virtual int get_audio_driver_count() const;
-	virtual const char *get_audio_driver_name(int p_driver) const;
-
-	virtual void initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver);
-
-	virtual void set_main_loop(MainLoop *p_main_loop);
-	virtual void delete_main_loop();
-
-	virtual void finalize();
-
-	typedef int64_t ProcessID;
-
-	static OS *get_singleton();
-
-	virtual void set_mouse_show(bool p_show);
-	virtual void set_mouse_grab(bool p_grab);
-	virtual bool is_mouse_grab_enabled() const;
-	virtual Point2 get_mouse_position() const;
-	virtual int get_mouse_button_state() const;
-	virtual void set_window_title(const String &p_title);
-
-	//virtual void set_clipboard(const String& p_text);
-	//virtual String get_clipboard() const;
-
-	virtual bool has_virtual_keyboard() const;
-	virtual void show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect);
-	virtual void hide_virtual_keyboard();
-
-	virtual void set_video_mode(const VideoMode &p_video_mode, int p_screen = 0);
-	virtual VideoMode get_video_mode(int p_screen = 0) const;
-	virtual void get_fullscreen_mode_list(List<VideoMode> *p_list, int p_screen = 0) const;
-
-	virtual Size2 get_window_size() const;
-	virtual String get_name();
-	virtual MainLoop *get_main_loop() const;
-
-	virtual bool can_draw() const;
-
-	virtual void set_cursor_shape(CursorShape p_shape);
-
-	virtual bool has_touchscreen_ui_hint() const;
-
-	virtual Error shell_open(String p_uri);
-
-	void run();
-
-	virtual PowerState get_power_state();
-	virtual int get_power_seconds_left();
-	virtual int get_power_percent_left();
-
-	OSBB10();
-	~OSBB10();
-};
-
-#endif

+ 0 - 149
platform/bb10/payment_service.cpp

@@ -1,149 +0,0 @@
-/*************************************************************************/
-/*  payment_service.cpp                                                  */
-/*************************************************************************/
-/*                       This file is part of:                           */
-/*                           GODOT ENGINE                                */
-/*                    http://www.godotengine.org                         */
-/*************************************************************************/
-/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur.                 */
-/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)    */
-/*                                                                       */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the       */
-/* "Software"), to deal in the Software without restriction, including   */
-/* without limitation the rights to use, copy, modify, merge, publish,   */
-/* distribute, sublicense, and/or sell copies of the Software, and to    */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions:                                             */
-/*                                                                       */
-/* The above copyright notice and this permission notice shall be        */
-/* included in all copies or substantial portions of the Software.       */
-/*                                                                       */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
-/*************************************************************************/
-#ifdef PAYMENT_SERVICE_ENABLED
-
-#include "payment_service.h"
-
-#include "bbutil.h"
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-extern char *launch_dir_ptr;
-
-void PaymentService::_bind_methods() {
-
-	ClassDB::bind_method(D_METHOD("request_product_info"), &PaymentService::request_product_info);
-	ClassDB::bind_method(D_METHOD("purchase"), &PaymentService::purchase);
-
-	ClassDB::bind_method(D_METHOD("get_pending_event_count"), &PaymentService::get_pending_event_count);
-	ClassDB::bind_method(D_METHOD("pop_pending_event"), &PaymentService::pop_pending_event);
-};
-
-Error PaymentService::request_product_info(Variant p_params) {
-
-	return ERR_UNAVAILABLE;
-};
-
-Error PaymentService::purchase(Variant p_params) {
-
-	Dictionary params = p_params;
-	ERR_FAIL_COND_V((!params.has("product_id")) && (!params.has("product_sku")), ERR_INVALID_PARAMETER);
-
-	char *id = NULL;
-	char *sku = NULL;
-
-	CharString p_id = params.has("product_id") ? String(params["product_id"]).ascii() : CharString();
-	CharString p_sku = params.has("product_sku") ? String(params["product_sku"]).ascii() : CharString();
-	unsigned int request_id;
-	chdir(launch_dir_ptr);
-	int ret = paymentservice_purchase_request(params.has("product_sku") ? NULL : p_id.get_data(),
-			params.has("product_sku") ? p_sku.get_data() : NULL,
-			NULL, NULL, NULL, NULL, get_window_group_id(), &request_id);
-	chdir("app/native");
-
-	if (ret != BPS_SUCCESS) {
-		int eret = errno;
-		printf("purchase error %i, %x, %i, %x\n", ret, ret, eret, eret);
-		ERR_FAIL_V((Error)eret);
-		return (Error)eret;
-	};
-	return OK;
-};
-
-bool PaymentService::handle_event(bps_event_t *p_event) {
-
-	if (bps_event_get_domain(p_event) != paymentservice_get_domain()) {
-		return false;
-	};
-
-	Dictionary dict;
-	int res = paymentservice_event_get_response_code(p_event);
-	if (res == SUCCESS_RESPONSE) {
-		dict["result"] = "ok";
-
-		res = bps_event_get_code(p_event);
-		if (res == PURCHASE_RESPONSE) {
-			dict["type"] = "purchase";
-			const char *pid = paymentservice_event_get_digital_good_id(p_event, 0);
-			dict["product_id"] = String(pid ? pid : "");
-		};
-
-	} else {
-		const char *desc = paymentservice_event_get_error_text(p_event);
-		if (strcmp(desc, "alreadyPurchased") == 0) {
-			dict["result"] = "ok";
-		} else {
-			dict["result"] = "error";
-			dict["error_description"] = paymentservice_event_get_error_text(p_event);
-			dict["error_code"] = paymentservice_event_get_error_id(p_event);
-			printf("error code is %i\n", paymentservice_event_get_error_id(p_event));
-			printf("error description is %s\n", paymentservice_event_get_error_text(p_event));
-		};
-		dict["product_id"] = "";
-	};
-
-	res = bps_event_get_code(p_event);
-	if (res == PURCHASE_RESPONSE) {
-		dict["type"] = "purchase";
-	};
-
-	printf("********** adding event with result %ls\n", String(dict["result"]).c_str());
-	pending_events.push_back(dict);
-
-	return true;
-};
-
-int PaymentService::get_pending_event_count() {
-	return pending_events.size();
-};
-
-Variant PaymentService::pop_pending_event() {
-
-	Variant front = pending_events.front()->get();
-	pending_events.pop_front();
-
-	return front;
-};
-
-PaymentService::PaymentService() {
-
-	paymentservice_request_events(0);
-#ifdef DEBUG_ENABLED
-	paymentservice_set_connection_mode(true);
-#else
-	paymentservice_set_connection_mode(false);
-#endif
-};
-
-PaymentService::~PaymentService(){
-
-};
-
-#endif

+ 0 - 64
platform/bb10/payment_service.h

@@ -1,64 +0,0 @@
-/*************************************************************************/
-/*  payment_service.h                                                    */
-/*************************************************************************/
-/*                       This file is part of:                           */
-/*                           GODOT ENGINE                                */
-/*                    http://www.godotengine.org                         */
-/*************************************************************************/
-/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur.                 */
-/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)    */
-/*                                                                       */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the       */
-/* "Software"), to deal in the Software without restriction, including   */
-/* without limitation the rights to use, copy, modify, merge, publish,   */
-/* distribute, sublicense, and/or sell copies of the Software, and to    */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions:                                             */
-/*                                                                       */
-/* The above copyright notice and this permission notice shall be        */
-/* included in all copies or substantial portions of the Software.       */
-/*                                                                       */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
-/*************************************************************************/
-#ifdef PAYMENT_SERVICE_ENABLED
-
-#ifndef PAYMENT_SERVICE_H
-#define PAYMENT_SERVICE_H
-
-#include <bps/bps.h>
-#include <bps/event.h>
-#include <bps/paymentservice.h>
-
-#include "core/object.h"
-
-class PaymentService : public Object {
-
-	GDCLASS(PaymentService, Object);
-
-	static void _bind_methods();
-
-	List<Variant> pending_events;
-
-public:
-	Error request_product_info(Variant p_params);
-	Error purchase(Variant p_params);
-
-	int get_pending_event_count();
-	Variant pop_pending_event();
-
-	bool handle_event(bps_event_t *p_event);
-
-	PaymentService();
-	~PaymentService();
-};
-
-#endif
-
-#endif

+ 0 - 30
platform/bb10/platform_config.h

@@ -1,30 +0,0 @@
-/*************************************************************************/
-/*  platform_config.h                                                    */
-/*************************************************************************/
-/*                       This file is part of:                           */
-/*                           GODOT ENGINE                                */
-/*                    http://www.godotengine.org                         */
-/*************************************************************************/
-/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur.                 */
-/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)    */
-/*                                                                       */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the       */
-/* "Software"), to deal in the Software without restriction, including   */
-/* without limitation the rights to use, copy, modify, merge, publish,   */
-/* distribute, sublicense, and/or sell copies of the Software, and to    */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions:                                             */
-/*                                                                       */
-/* The above copyright notice and this permission notice shall be        */
-/* included in all copies or substantial portions of the Software.       */
-/*                                                                       */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
-/*************************************************************************/
-#include <alloca.h>

+ 0 - 72
platform/bb10/power_bb10.cpp

@@ -1,72 +0,0 @@
-/*************************************************************************/
-/*  power_bb10.cpp                                                       */
-/*************************************************************************/
-/*                       This file is part of:                           */
-/*                           GODOT ENGINE                                */
-/*                    http://www.godotengine.org                         */
-/*************************************************************************/
-/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur.                 */
-/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)    */
-/*                                                                       */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the       */
-/* "Software"), to deal in the Software without restriction, including   */
-/* without limitation the rights to use, copy, modify, merge, publish,   */
-/* distribute, sublicense, and/or sell copies of the Software, and to    */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions:                                             */
-/*                                                                       */
-/* The above copyright notice and this permission notice shall be        */
-/* included in all copies or substantial portions of the Software.       */
-/*                                                                       */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
-/*************************************************************************/
-
-#include "power_bb10.h"
-
-#include "core/error_macros.h"
-
-bool PowerBB10::UpdatePowerInfo() {
-
-	return false;
-}
-
-PowerState PowerBB10::get_power_state() {
-	if (UpdatePowerInfo()) {
-		return power_state;
-	} else {
-		WARN_PRINT("Power management is not implemented on this platform, defaulting to POWERSTATE_UNKNOWN");
-		return POWERSTATE_UNKNOWN;
-	}
-}
-
-int PowerBB10::get_power_seconds_left() {
-	if (UpdatePowerInfo()) {
-		return nsecs_left;
-	} else {
-		WARN_PRINT("Power management is not implemented on this platform, defaulting to -1");
-		return -1;
-	}
-}
-
-int PowerBB10::get_power_percent_left() {
-	if (UpdatePowerInfo()) {
-		return percent_left;
-	} else {
-		WARN_PRINT("Power management is not implemented on this platform, defaulting to -1");
-		return -1;
-	}
-}
-
-PowerBB10::PowerBB10()
-	: nsecs_left(-1), percent_left(-1), power_state(POWERSTATE_UNKNOWN) {
-}
-
-PowerBB10::~PowerBB10() {
-}

+ 0 - 51
platform/bb10/power_bb10.h

@@ -1,51 +0,0 @@
-/*************************************************************************/
-/*  power_bb10.h                                                         */
-/*************************************************************************/
-/*                       This file is part of:                           */
-/*                           GODOT ENGINE                                */
-/*                    http://www.godotengine.org                         */
-/*************************************************************************/
-/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur.                 */
-/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)    */
-/*                                                                       */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the       */
-/* "Software"), to deal in the Software without restriction, including   */
-/* without limitation the rights to use, copy, modify, merge, publish,   */
-/* distribute, sublicense, and/or sell copies of the Software, and to    */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions:                                             */
-/*                                                                       */
-/* The above copyright notice and this permission notice shall be        */
-/* included in all copies or substantial portions of the Software.       */
-/*                                                                       */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
-/*************************************************************************/
-
-#ifndef PLATFORM_BB10_POWER_BB10_H_
-#define PLATFORM_BB10_POWER_BB10_H_
-
-class PowerBB10 {
-private:
-	int nsecs_left;
-	int percent_left;
-	PowerState power_state;
-
-	bool UpdatePowerInfo();
-
-public:
-	PowerBB10();
-	virtual ~PowerBB10();
-
-	PowerState get_power_state();
-	int get_power_seconds_left();
-	int get_power_percent_left();
-};
-
-#endif /* PLATFORM_BB10_POWER_BB10_H_ */