Conflicts:
	drivers/theora/video_stream_theora.cpp
This commit is contained in:
Juan Linietsky 2015-11-18 04:49:28 -03:00
commit 18e014a193
14 changed files with 93 additions and 31 deletions

View File

@ -69,21 +69,27 @@ for f in env.drivers_sources:
fname = env.File(f).path fname = env.File(f).path
else: else:
fname = env.File(f)[0].path fname = env.File(f)[0].path
#base = string.join(fname.split("/")[:-1], "/")
fname = fname.replace("\\", "/") fname = fname.replace("\\", "/")
base = string.join(fname.split("/")[:2], "/") base = string.join(fname.split("/")[:2], "/")
if base != cur_base and len(list) > max_src: if base != cur_base and len(list) > max_src:
lib = env.Library("drivers"+str(num), list) if num > 0:
lib_list.append(lib) lib = env.Library("drivers"+str(num), list)
list = [] lib_list.append(lib)
list = []
num = num+1 num = num+1
cur_base = base cur_base = base
list.append(f) list.append(f)
if len(list) > 0: lib = env.Library("drivers"+str(num), list)
lib = env.Library("drivers"+str(num), list) lib_list.append(lib)
lib_list.append(lib)
if len(lib_list) > 0:
import os, sys
if os.name=='posix' and sys.platform=='msys':
env.Replace(ARFLAGS=['rcsT'])
lib = env.Library("drivers_collated", lib_list)
lib_list = [lib]
drivers_base=[] drivers_base=[]
env.add_source_files(drivers_base,"*.cpp") env.add_source_files(drivers_base,"*.cpp")

View File

@ -111,7 +111,7 @@ class RasterizerGLES2 : public Rasterizer {
Image _get_gl_image_and_format(const Image& p_image, Image::Format p_format, uint32_t p_flags,GLenum& r_gl_format,GLenum& r_gl_internal_format,int &r_gl_components,bool &r_has_alpha_cache,bool &r_compressed); Image _get_gl_image_and_format(const Image& p_image, Image::Format p_format, uint32_t p_flags,GLenum& r_gl_format,GLenum& r_gl_internal_format,int &r_gl_components,bool &r_has_alpha_cache,bool &r_compressed);
class RenderTarget; struct RenderTarget;
struct Texture { struct Texture {
@ -305,7 +305,7 @@ class RasterizerGLES2 : public Rasterizer {
virtual ~GeometryOwner() {} virtual ~GeometryOwner() {}
}; };
class Mesh; struct Mesh;
struct Surface : public Geometry { struct Surface : public Geometry {

View File

@ -34,7 +34,7 @@ class ShaderCompilerGLES2 {
class Uniform; class Uniform;
public: public:
class Flags; struct Flags;
private: private:
ShaderLanguage::ProgramNode *program_node; ShaderLanguage::ProgramNode *program_node;

View File

@ -1611,28 +1611,35 @@ static void oc_filter_hedge(unsigned char *_dst,int _dst_ystride,
int sum1; int sum1;
int bx; int bx;
int by; int by;
int _rlimit1;
int _rlimit2;
rdst=_dst; rdst=_dst;
rsrc=_src; rsrc=_src;
for(bx=0;bx<8;bx++){ for(bx=0;bx<8;++bx){
cdst=rdst; cdst=rdst;
csrc=rsrc; csrc=rsrc;
for(by=0;by<10;by++){ _rlimit1 = _rlimit2 = _flimit;
for(by=0;by<10;++by){
r[by]=*csrc; r[by]=*csrc;
csrc+=_src_ystride; csrc+=_src_ystride;
} }
sum0=sum1=0; sum0=sum1=0;
for(by=0;by<4;by++){ for(by=0;by<4;++by){
sum0+=abs(r[by+1]-r[by]); int sumed = abs(r[by+1]-r[by]);
sum1+=abs(r[by+5]-r[by+6]); sum0+=sumed;
_rlimit1-=sumed;
sumed = abs(r[by+5]-r[by+6]);
sum1+=sumed;
_rlimit2-=sumed;
} }
*_variance0+=OC_MINI(255,sum0); *_variance0+=OC_MINI(255,sum0);
*_variance1+=OC_MINI(255,sum1); *_variance1+=OC_MINI(255,sum1);
if(sum0<_flimit&&sum1<_flimit&&r[5]-r[4]<_qstep&&r[4]-r[5]<_qstep){ if(_rlimit1&&_rlimit2&&!(r[5]-r[4]-_qstep)&&!(r[4]-r[5]-_qstep)){
*cdst=(unsigned char)(r[0]*3+r[1]*2+r[2]+r[3]+r[4]+4>>3); *cdst=(unsigned char)(r[0]*3+r[1]*2+r[2]+r[3]+r[4]+4>>3);
cdst+=_dst_ystride; cdst+=_dst_ystride;
*cdst=(unsigned char)(r[0]*2+r[1]+r[2]*2+r[3]+r[4]+r[5]+4>>3); *cdst=(unsigned char)(r[0]*2+r[1]+r[2]*2+r[3]+r[4]+r[5]+4>>3);
cdst+=_dst_ystride; cdst+=_dst_ystride;
for(by=0;by<4;by++){ for(by=0;by<4;++by){
*cdst=(unsigned char)(r[by]+r[by+1]+r[by+2]+r[by+3]*2+ *cdst=(unsigned char)(r[by]+r[by+1]+r[by+2]+r[by+3]*2+
r[by+4]+r[by+5]+r[by+6]+4>>3); r[by+4]+r[by+5]+r[by+6]+4>>3);
cdst+=_dst_ystride; cdst+=_dst_ystride;
@ -1642,13 +1649,13 @@ static void oc_filter_hedge(unsigned char *_dst,int _dst_ystride,
*cdst=(unsigned char)(r[5]+r[6]+r[7]+r[8]*2+r[9]*3+4>>3); *cdst=(unsigned char)(r[5]+r[6]+r[7]+r[8]*2+r[9]*3+4>>3);
} }
else{ else{
for(by=1;by<=8;by++){ for(by=1;by<=8;++by){
*cdst=(unsigned char)r[by]; *cdst=(unsigned char)r[by];
cdst+=_dst_ystride; cdst+=_dst_ystride;
} }
} }
rdst++; ++rdst;
rsrc++; ++rsrc;
} }
} }
@ -1663,19 +1670,26 @@ static void oc_filter_vedge(unsigned char *_dst,int _dst_ystride,
int sum1; int sum1;
int bx; int bx;
int by; int by;
int _rlimit1;
int _rlimit2;
cdst=_dst; cdst=_dst;
for(by=0;by<8;by++){ for(by=0;by<8;++by){
rsrc=cdst-1; rsrc=cdst-1;
rdst=cdst; rdst=cdst;
for(bx=0;bx<10;bx++)r[bx]=*rsrc++; for(bx=0;bx<10;++bx)r[bx]=*rsrc++;
sum0=sum1=0; sum0=sum1=0;
for(bx=0;bx<4;bx++){ _rlimit1 = _rlimit2 = _flimit;
sum0+=abs(r[bx+1]-r[bx]); for(bx=0;bx<4;++bx){
sum1+=abs(r[bx+5]-r[bx+6]); int sumed = abs(r[bx+1]-r[bx]);
sum0+=sumed;
_rlimit1-=sumed;
sumed = abs(r[bx+5]-r[bx+6]);
sum1+=sumed;
_rlimit2-=sumed;
} }
_variances[0]+=OC_MINI(255,sum0); _variances[0]+=OC_MINI(255,sum0);
_variances[1]+=OC_MINI(255,sum1); _variances[1]+=OC_MINI(255,sum1);
if(sum0<_flimit&&sum1<_flimit&&r[5]-r[4]<_qstep&&r[4]-r[5]<_qstep){ if(_rlimit1&&_rlimit2&&!(r[5]-r[4]-_qstep)&&!(r[4]-r[5]-_qstep)){
*rdst++=(unsigned char)(r[0]*3+r[1]*2+r[2]+r[3]+r[4]+4>>3); *rdst++=(unsigned char)(r[0]*3+r[1]*2+r[2]+r[3]+r[4]+4>>3);
*rdst++=(unsigned char)(r[0]*2+r[1]+r[2]*2+r[3]+r[4]+r[5]+4>>3); *rdst++=(unsigned char)(r[0]*2+r[1]+r[2]*2+r[3]+r[4]+r[5]+4>>3);
for(bx=0;bx<4;bx++){ for(bx=0;bx<4;bx++){

View File

@ -271,6 +271,8 @@ void VideoStreamPlaybackTheora::set_file(const String& p_file) {
copymem(&to,&test,sizeof(test)); copymem(&to,&test,sizeof(test));
theora_p=1; theora_p=1;
}else if(!vorbis_p && vorbis_synthesis_headerin(&vi,&vc,&op)>=0){ }else if(!vorbis_p && vorbis_synthesis_headerin(&vi,&vc,&op)>=0){
/* it is vorbis */ /* it is vorbis */
if (audio_track_skip) { if (audio_track_skip) {
vorbis_info_clear(&vi); vorbis_info_clear(&vi);
@ -281,7 +283,7 @@ void VideoStreamPlaybackTheora::set_file(const String& p_file) {
audio_track_skip--; audio_track_skip--;
} else { } else {
copymem(&vo,&test,sizeof(test)); copymem(&vo,&test,sizeof(test));
vorbis_p=1; vorbis_p=1;
} }
}else{ }else{

View File

@ -56,6 +56,8 @@
#import "Appirater.h" #import "Appirater.h"
#endif #endif
Error _shell_open(String);
Error _shell_open(String p_uri) { Error _shell_open(String p_uri) {
NSString* url = [[NSString alloc] initWithUTF8String:p_uri.utf8().get_data()]; NSString* url = [[NSString alloc] initWithUTF8String:p_uri.utf8().get_data()];

View File

@ -30,8 +30,18 @@
#include "game_center.h" #include "game_center.h"
#ifdef __IPHONE_9_0
#import <GameKit/GameKit.h>
extern "C" {
#else
extern "C" { extern "C" {
#import <GameKit/GameKit.h> #import <GameKit/GameKit.h>
#endif
#import "app_delegate.h" #import "app_delegate.h"
}; };

View File

@ -54,6 +54,14 @@ static bool video_playing = false;
static float video_previous_volume = 0.0f; static float video_previous_volume = 0.0f;
static CMTime video_current_time; static CMTime video_current_time;
void _show_keyboard(String);
void _hide_keyboard();
bool _play_video(String, float, String, String);
bool _is_video_playing();
void _focus_out_video();
void _unpause_video();
void _stop_video();
void _show_keyboard(String p_existing) { void _show_keyboard(String p_existing) {
keyboard_text = p_existing; keyboard_text = p_existing;
printf("instance on show is %p\n", _instance); printf("instance on show is %p\n", _instance);
@ -618,7 +626,7 @@ static void clear_touches() {
- (void)audioRouteChangeListenerCallback:(NSNotification*)notification - (void)audioRouteChangeListenerCallback:(NSNotification*)notification
{ {
printf("*********** route changed!%i\n"); printf("*********** route changed!\n");
NSDictionary *interuptionDict = notification.userInfo; NSDictionary *interuptionDict = notification.userInfo;
NSInteger routeChangeReason = [[interuptionDict valueForKey:AVAudioSessionRouteChangeReasonKey] integerValue]; NSInteger routeChangeReason = [[interuptionDict valueForKey:AVAudioSessionRouteChangeReasonKey] integerValue];

View File

@ -40,6 +40,8 @@ int add_path(int p_argc, char** p_args);
int add_cmdline(int p_argc, char** p_args); int add_cmdline(int p_argc, char** p_args);
}; };
int iphone_main(int, int, int, char**);
int iphone_main(int width, int height, int argc, char** argv) { int iphone_main(int width, int height, int argc, char** argv) {
int len = strlen(argv[0]); int len = strlen(argv[0]);

View File

@ -30,10 +30,16 @@
#include "icloud.h" #include "icloud.h"
#ifndef __IPHONE_9_0
extern "C" { extern "C" {
#endif
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import "app_delegate.h" #import "app_delegate.h"
#ifndef __IPHONE_9_0
}; };
#endif
ICloud* ICloud::instance = NULL; ICloud* ICloud::instance = NULL;

View File

@ -31,6 +31,11 @@
#include <unistd.h> #include <unistd.h>
#include <fcntl.h> #include <fcntl.h>
void cgsem_init(cgsem_t*);
void cgsem_post(cgsem_t*);
void cgsem_wait(cgsem_t*);
void cgsem_destroy(cgsem_t*);
void cgsem_init(cgsem_t *cgsem) void cgsem_init(cgsem_t *cgsem)
{ {
int flags, fd, i; int flags, fd, i;

View File

@ -32,6 +32,9 @@
extern "C" { extern "C" {
int add_path(int, char**);
int add_cmdline(int, char**);
int add_path(int p_argc, char** p_args) { int add_path(int p_argc, char** p_args) {
NSString* str = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"godot_path"]; NSString* str = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"godot_path"];

View File

@ -1350,7 +1350,9 @@ void OS_Windows::finalize() {
memdelete(main_loop); memdelete(main_loop);
main_loop=NULL; main_loop=NULL;
memdelete(input);
visual_server->finish(); visual_server->finish();
memdelete(visual_server); memdelete(visual_server);
#ifdef OPENGL_ENABLED #ifdef OPENGL_ENABLED
@ -1377,8 +1379,6 @@ void OS_Windows::finalize() {
memdelete(audio_server); memdelete(audio_server);
memdelete(sample_manager); memdelete(sample_manager);
memdelete(input);
physics_server->finish(); physics_server->finish();
memdelete(physics_server); memdelete(physics_server);

View File

@ -2039,6 +2039,10 @@ void Node::_bind_methods() {
ObjectTypeDB::bind_method(_MD("duplicate:Node","use_instancing"),&Node::duplicate,DEFVAL(false)); ObjectTypeDB::bind_method(_MD("duplicate:Node","use_instancing"),&Node::duplicate,DEFVAL(false));
ObjectTypeDB::bind_method(_MD("replace_by","node:Node","keep_data"),&Node::replace_by,DEFVAL(false)); ObjectTypeDB::bind_method(_MD("replace_by","node:Node","keep_data"),&Node::replace_by,DEFVAL(false));
ObjectTypeDB::bind_method(_MD("set_scene_instance_load_placeholder","load_placeholder"),&Node::set_scene_instance_load_placeholder);
ObjectTypeDB::bind_method(_MD("get_scene_instance_load_placeholder"),&Node::get_scene_instance_load_placeholder);
ObjectTypeDB::bind_method(_MD("get_viewport"),&Node::get_viewport); ObjectTypeDB::bind_method(_MD("get_viewport"),&Node::get_viewport);
ObjectTypeDB::bind_method(_MD("queue_free"),&Node::queue_delete); ObjectTypeDB::bind_method(_MD("queue_free"),&Node::queue_delete);