Style: Apply clang-format on all files
Thus fixing some invalid changes that had still made it to the 2.1 branch.
This commit is contained in:
parent
6d3fea6864
commit
c1f54e1a45
@ -2314,12 +2314,12 @@ void Image::blend_rect(const Image &p_src, const Rect2 &p_src_rect, const Point2
|
||||
|
||||
BColor src = p_src._get_pixel(rrect.pos.x + j, rrect.pos.y + i, src_data_ptr, srcdsize);
|
||||
BColor dst = _get_pixel(p_dest.x + j, p_dest.y + i, dst_data_ptr, dst_data_size);
|
||||
float ba = (float) dst.a / 255.0;
|
||||
float fa = (float) src.a / 255.0;
|
||||
dst.r = (uint8_t) (fa*src.r + ba*(1.0 - fa) * dst.r);
|
||||
dst.g = (uint8_t) (fa*src.g + ba*(1.0 - fa) * dst.g);
|
||||
dst.b = (uint8_t) (fa*src.b + ba*(1.0 - fa) * dst.b);
|
||||
dst.a = (uint8_t) (255.0 * (fa + ba * (1.0 - fa)));
|
||||
float ba = (float)dst.a / 255.0;
|
||||
float fa = (float)src.a / 255.0;
|
||||
dst.r = (uint8_t)(fa * src.r + ba * (1.0 - fa) * dst.r);
|
||||
dst.g = (uint8_t)(fa * src.g + ba * (1.0 - fa) * dst.g);
|
||||
dst.b = (uint8_t)(fa * src.b + ba * (1.0 - fa) * dst.b);
|
||||
dst.a = (uint8_t)(255.0 * (fa + ba * (1.0 - fa)));
|
||||
_put_pixel(p_dest.x + j, p_dest.y + i, dst, dst_data_ptr);
|
||||
}
|
||||
}
|
||||
@ -2369,12 +2369,12 @@ void Image::blend_rect_mask(const Image &p_src, const Image &p_mask, const Rect2
|
||||
if (msk.a != 0) {
|
||||
BColor src = p_src._get_pixel(rrect.pos.x + j, rrect.pos.y + i, src_data_ptr, srcdsize);
|
||||
BColor dst = _get_pixel(p_dest.x + j, p_dest.y + i, dst_data_ptr, dst_data_size);
|
||||
float ba = (float) dst.a / 255.0;
|
||||
float fa = (float) src.a / 255.0;
|
||||
dst.r = (uint8_t) (fa*src.r + ba*(1.0 - fa) * dst.r);
|
||||
dst.g = (uint8_t) (fa*src.g + ba*(1.0 - fa) * dst.g);
|
||||
dst.b = (uint8_t) (fa*src.b + ba*(1.0 - fa) * dst.b);
|
||||
dst.a = (uint8_t) (255.0 * (fa + ba * (1.0 - fa)));
|
||||
float ba = (float)dst.a / 255.0;
|
||||
float fa = (float)src.a / 255.0;
|
||||
dst.r = (uint8_t)(fa * src.r + ba * (1.0 - fa) * dst.r);
|
||||
dst.g = (uint8_t)(fa * src.g + ba * (1.0 - fa) * dst.g);
|
||||
dst.b = (uint8_t)(fa * src.b + ba * (1.0 - fa) * dst.b);
|
||||
dst.a = (uint8_t)(255.0 * (fa + ba * (1.0 - fa)));
|
||||
_put_pixel(p_dest.x + j, p_dest.y + i, dst, dst_data_ptr);
|
||||
}
|
||||
}
|
||||
@ -2388,8 +2388,8 @@ void Image::fill(const Color &p_color) {
|
||||
|
||||
DVector<uint8_t>::Write wp = data.write();
|
||||
unsigned char *dst_data_ptr = wp.ptr();
|
||||
|
||||
BColor c = BColor(p_color.r*255, p_color.g*255, p_color.b*255, p_color.a*255);
|
||||
|
||||
BColor c = BColor(p_color.r * 255, p_color.g * 255, p_color.b * 255, p_color.a * 255);
|
||||
|
||||
for (int i = 0; i < height; i++) {
|
||||
|
||||
@ -2398,7 +2398,6 @@ void Image::fill(const Color &p_color) {
|
||||
_put_pixel(j, i, c, dst_data_ptr);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Image (*Image::_png_mem_loader_func)(const uint8_t *, int) = NULL;
|
||||
|
@ -356,7 +356,7 @@ public:
|
||||
void blend_rect_mask(const Image &p_src, const Image &p_mask, const Rect2 &p_src_rect, const Point2 &p_dest);
|
||||
|
||||
void fill(const Color &p_color);
|
||||
|
||||
|
||||
void brush_transfer(const Image &p_src, const Image &p_brush, const Point2 &p_dest);
|
||||
Image brushed(const Image &p_src, const Image &p_brush, const Point2 &p_dest) const;
|
||||
|
||||
|
@ -111,7 +111,7 @@ int Compression::decompress(uint8_t *p_dst, int p_dst_max_size, const uint8_t *p
|
||||
switch (p_mode) {
|
||||
case MODE_FASTLZ: {
|
||||
|
||||
int ret_size=0;
|
||||
int ret_size = 0;
|
||||
|
||||
if (p_dst_max_size < 16) {
|
||||
uint8_t dst[16];
|
||||
|
@ -120,7 +120,7 @@ public:
|
||||
bool is_subsequence_ofi(const String &p_string) const;
|
||||
Vector<String> bigrams() const;
|
||||
float similarity(const String &p_string) const;
|
||||
String format(const Variant& values, String placeholder = "{_}") const;
|
||||
String format(const Variant &values, String placeholder = "{_}") const;
|
||||
String replace_first(String p_key, String p_with) const;
|
||||
String replace(String p_key, String p_with) const;
|
||||
String replacen(String p_key, String p_with) const;
|
||||
|
@ -512,7 +512,6 @@ Error EditorMeshImportPlugin::import(const String &p_path, const Ref<ResourceImp
|
||||
surf_tool->add_smooth_group(true);
|
||||
|
||||
has_index_data = false;
|
||||
|
||||
}
|
||||
|
||||
if (l.begins_with("o ")) //name
|
||||
|
@ -1041,8 +1041,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent &p_event) {
|
||||
|
||||
v_scroll->set_val(v_scroll->get_val() + int(EditorSettings::get_singleton()->get("2d_editor/pan_speed")) / zoom * b.factor);
|
||||
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
|
||||
if (zoom < MIN_ZOOM)
|
||||
return;
|
||||
@ -1055,7 +1054,6 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent &p_event) {
|
||||
h_scroll->set_val(h_scroll->get_val() + ofs.x);
|
||||
v_scroll->set_val(v_scroll->get_val() + ofs.y);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
_update_scroll(0);
|
||||
@ -1069,8 +1067,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent &p_event) {
|
||||
|
||||
v_scroll->set_val(v_scroll->get_val() - int(EditorSettings::get_singleton()->get("2d_editor/pan_speed")) / zoom * b.factor);
|
||||
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
|
||||
if (zoom > MAX_ZOOM)
|
||||
return;
|
||||
@ -1083,7 +1080,6 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent &p_event) {
|
||||
h_scroll->set_val(h_scroll->get_val() + ofs.x);
|
||||
v_scroll->set_val(v_scroll->get_val() + ofs.y);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
_update_scroll(0);
|
||||
@ -1099,9 +1095,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent &p_event) {
|
||||
|
||||
_update_scroll(0);
|
||||
viewport->update();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (b.button_index == BUTTON_WHEEL_RIGHT) {
|
||||
@ -1112,9 +1106,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent &p_event) {
|
||||
|
||||
_update_scroll(0);
|
||||
viewport->update();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (b.button_index == BUTTON_RIGHT) {
|
||||
|
@ -29,11 +29,11 @@
|
||||
/*************************************************************************/
|
||||
#import "app_delegate.h"
|
||||
|
||||
#include "audio_driver_iphone.h"
|
||||
#include "core/globals.h"
|
||||
#import "gl_view.h"
|
||||
#include "main/main.h"
|
||||
#include "os_iphone.h"
|
||||
#include "audio_driver_iphone.h"
|
||||
|
||||
#ifdef MODULE_FACEBOOKSCORER_IOS_ENABLED
|
||||
#include "modules/FacebookScorer_ios/FacebookScorer.h"
|
||||
@ -156,7 +156,7 @@ NSMutableDictionary *ios_joysticks = nil;
|
||||
|
||||
// add it to our dictionary, this will retain our controllers
|
||||
[ios_joysticks setObject:controller
|
||||
forKey:[NSNumber numberWithInt:joy_id]];
|
||||
forKey:[NSNumber numberWithInt:joy_id]];
|
||||
|
||||
// set our input handler
|
||||
[self setControllerInputHandler:controller];
|
||||
@ -210,37 +210,37 @@ NSMutableDictionary *ios_joysticks = nil;
|
||||
|
||||
if (element == gamepad.buttonA) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_0,
|
||||
gamepad.buttonA.isPressed);
|
||||
gamepad.buttonA.isPressed);
|
||||
} else if (element == gamepad.buttonB) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_1,
|
||||
gamepad.buttonB.isPressed);
|
||||
gamepad.buttonB.isPressed);
|
||||
} else if (element == gamepad.buttonX) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_2,
|
||||
gamepad.buttonX.isPressed);
|
||||
gamepad.buttonX.isPressed);
|
||||
} else if (element == gamepad.buttonY) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_3,
|
||||
gamepad.buttonY.isPressed);
|
||||
gamepad.buttonY.isPressed);
|
||||
} else if (element == gamepad.leftShoulder) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_L,
|
||||
gamepad.leftShoulder.isPressed);
|
||||
gamepad.leftShoulder.isPressed);
|
||||
} else if (element == gamepad.rightShoulder) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_R,
|
||||
gamepad.rightShoulder.isPressed);
|
||||
gamepad.rightShoulder.isPressed);
|
||||
} else if (element == gamepad.leftTrigger) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_L2,
|
||||
gamepad.leftTrigger.isPressed);
|
||||
gamepad.leftTrigger.isPressed);
|
||||
} else if (element == gamepad.rightTrigger) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_R2,
|
||||
gamepad.rightTrigger.isPressed);
|
||||
gamepad.rightTrigger.isPressed);
|
||||
} else if (element == gamepad.dpad) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_UP,
|
||||
gamepad.dpad.up.isPressed);
|
||||
gamepad.dpad.up.isPressed);
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_DOWN,
|
||||
gamepad.dpad.down.isPressed);
|
||||
gamepad.dpad.down.isPressed);
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_LEFT,
|
||||
gamepad.dpad.left.isPressed);
|
||||
gamepad.dpad.left.isPressed);
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_RIGHT,
|
||||
gamepad.dpad.right.isPressed);
|
||||
gamepad.dpad.right.isPressed);
|
||||
};
|
||||
|
||||
InputDefault::JoyAxis jx;
|
||||
@ -267,36 +267,36 @@ NSMutableDictionary *ios_joysticks = nil;
|
||||
// gamepad is the standard profile with 4 buttons, shoulder buttons and a
|
||||
// D-pad
|
||||
controller.gamepad.valueChangedHandler = ^(GCGamepad *gamepad,
|
||||
GCControllerElement *element) {
|
||||
GCControllerElement *element) {
|
||||
int joy_id = [self getJoyIdForController:controller];
|
||||
|
||||
if (element == gamepad.buttonA) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_0,
|
||||
gamepad.buttonA.isPressed);
|
||||
gamepad.buttonA.isPressed);
|
||||
} else if (element == gamepad.buttonB) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_1,
|
||||
gamepad.buttonB.isPressed);
|
||||
gamepad.buttonB.isPressed);
|
||||
} else if (element == gamepad.buttonX) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_2,
|
||||
gamepad.buttonX.isPressed);
|
||||
gamepad.buttonX.isPressed);
|
||||
} else if (element == gamepad.buttonY) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_3,
|
||||
gamepad.buttonY.isPressed);
|
||||
gamepad.buttonY.isPressed);
|
||||
} else if (element == gamepad.leftShoulder) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_L,
|
||||
gamepad.leftShoulder.isPressed);
|
||||
gamepad.leftShoulder.isPressed);
|
||||
} else if (element == gamepad.rightShoulder) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_R,
|
||||
gamepad.rightShoulder.isPressed);
|
||||
gamepad.rightShoulder.isPressed);
|
||||
} else if (element == gamepad.dpad) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_UP,
|
||||
gamepad.dpad.up.isPressed);
|
||||
gamepad.dpad.up.isPressed);
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_DOWN,
|
||||
gamepad.dpad.down.isPressed);
|
||||
gamepad.dpad.down.isPressed);
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_LEFT,
|
||||
gamepad.dpad.left.isPressed);
|
||||
gamepad.dpad.left.isPressed);
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_RIGHT,
|
||||
gamepad.dpad.right.isPressed);
|
||||
gamepad.dpad.right.isPressed);
|
||||
};
|
||||
};
|
||||
#ifdef ADD_MICRO_GAMEPAD // disabling this for now, only available on iOS 9+ and we're still compiling for iOS 7+
|
||||
@ -307,19 +307,19 @@ NSMutableDictionary *ios_joysticks = nil;
|
||||
|
||||
if (element == gamepad.buttonA) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_0,
|
||||
gamepad.buttonA.isPressed);
|
||||
gamepad.buttonA.isPressed);
|
||||
} else if (element == gamepad.buttonX) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_2,
|
||||
gamepad.buttonX.isPressed);
|
||||
gamepad.buttonX.isPressed);
|
||||
} else if (element == gamepad.dpad) {
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_UP,
|
||||
gamepad.dpad.up.isPressed);
|
||||
gamepad.dpad.up.isPressed);
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_DOWN,
|
||||
gamepad.dpad.down.isPressed);
|
||||
gamepad.dpad.down.isPressed);
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_LEFT,
|
||||
gamepad.dpad.left.isPressed);
|
||||
gamepad.dpad.left.isPressed);
|
||||
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_RIGHT,
|
||||
gamepad.dpad.right.isPressed);
|
||||
gamepad.dpad.right.isPressed);
|
||||
};
|
||||
};
|
||||
#endif
|
||||
@ -337,27 +337,27 @@ NSMutableDictionary *ios_joysticks = nil;
|
||||
// already connected controllers
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
addObserver:self
|
||||
selector:@selector(controllerWasConnected:)
|
||||
name:GCControllerDidConnectNotification
|
||||
object:nil];
|
||||
selector:@selector(controllerWasConnected:)
|
||||
name:GCControllerDidConnectNotification
|
||||
object:nil];
|
||||
|
||||
// get told when controllers disconnect
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
addObserver:self
|
||||
selector:@selector(controllerWasDisconnected:)
|
||||
name:GCControllerDidDisconnectNotification
|
||||
object:nil];
|
||||
selector:@selector(controllerWasDisconnected:)
|
||||
name:GCControllerDidDisconnectNotification
|
||||
object:nil];
|
||||
};
|
||||
|
||||
- (void)deinitGameControllers {
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
removeObserver:self
|
||||
name:GCControllerDidConnectNotification
|
||||
object:nil];
|
||||
name:GCControllerDidConnectNotification
|
||||
object:nil];
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
removeObserver:self
|
||||
name:GCControllerDidDisconnectNotification
|
||||
object:nil];
|
||||
name:GCControllerDidDisconnectNotification
|
||||
object:nil];
|
||||
|
||||
if (ios_joysticks != nil) {
|
||||
[ios_joysticks dealloc];
|
||||
@ -370,195 +370,195 @@ static int frame_count = 0;
|
||||
{
|
||||
|
||||
switch (frame_count) {
|
||||
case 0: {
|
||||
int backingWidth;
|
||||
int backingHeight;
|
||||
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES,
|
||||
GL_RENDERBUFFER_WIDTH_OES, &backingWidth);
|
||||
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES,
|
||||
GL_RENDERBUFFER_HEIGHT_OES, &backingHeight);
|
||||
case 0: {
|
||||
int backingWidth;
|
||||
int backingHeight;
|
||||
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES,
|
||||
GL_RENDERBUFFER_WIDTH_OES, &backingWidth);
|
||||
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES,
|
||||
GL_RENDERBUFFER_HEIGHT_OES, &backingHeight);
|
||||
|
||||
OS::VideoMode vm;
|
||||
vm.fullscreen = true;
|
||||
vm.width = backingWidth;
|
||||
vm.height = backingHeight;
|
||||
vm.resizable = false;
|
||||
OS::get_singleton()->set_video_mode(vm);
|
||||
OS::VideoMode vm;
|
||||
vm.fullscreen = true;
|
||||
vm.width = backingWidth;
|
||||
vm.height = backingHeight;
|
||||
vm.resizable = false;
|
||||
OS::get_singleton()->set_video_mode(vm);
|
||||
|
||||
if (!OS::get_singleton()) {
|
||||
exit(0);
|
||||
};
|
||||
++frame_count;
|
||||
if (!OS::get_singleton()) {
|
||||
exit(0);
|
||||
};
|
||||
++frame_count;
|
||||
|
||||
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
|
||||
NSUserDomainMask, YES);
|
||||
NSString *documentsDirectory = [paths objectAtIndex:0];
|
||||
// NSString *documentsDirectory = [[[NSFileManager defaultManager]
|
||||
// URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask]
|
||||
// lastObject];
|
||||
OSIPhone::get_singleton()->set_data_dir(
|
||||
String::utf8([documentsDirectory UTF8String]));
|
||||
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
|
||||
NSUserDomainMask, YES);
|
||||
NSString *documentsDirectory = [paths objectAtIndex:0];
|
||||
// NSString *documentsDirectory = [[[NSFileManager defaultManager]
|
||||
// URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask]
|
||||
// lastObject];
|
||||
OSIPhone::get_singleton()->set_data_dir(
|
||||
String::utf8([documentsDirectory UTF8String]));
|
||||
|
||||
NSString *locale_code = [[NSLocale currentLocale] localeIdentifier];
|
||||
OSIPhone::get_singleton()->set_locale(
|
||||
String::utf8([locale_code UTF8String]));
|
||||
NSString *locale_code = [[NSLocale currentLocale] localeIdentifier];
|
||||
OSIPhone::get_singleton()->set_locale(
|
||||
String::utf8([locale_code UTF8String]));
|
||||
|
||||
NSString *uuid;
|
||||
if ([[UIDevice currentDevice]
|
||||
NSString *uuid;
|
||||
if ([[UIDevice currentDevice]
|
||||
respondsToSelector:@selector(identifierForVendor)]) {
|
||||
uuid = [UIDevice currentDevice].identifierForVendor.UUIDString;
|
||||
} else {
|
||||
uuid = [UIDevice currentDevice].identifierForVendor.UUIDString;
|
||||
} else {
|
||||
|
||||
// before iOS 6, so just generate an identifier and store it
|
||||
uuid = [[NSUserDefaults standardUserDefaults]
|
||||
objectForKey:@"identiferForVendor"];
|
||||
if (!uuid) {
|
||||
CFUUIDRef cfuuid = CFUUIDCreate(NULL);
|
||||
uuid = (__bridge_transfer NSString *)CFUUIDCreateString(NULL, cfuuid);
|
||||
CFRelease(cfuuid);
|
||||
[[NSUserDefaults standardUserDefaults]
|
||||
setObject:uuid
|
||||
forKey:@"identifierForVendor"];
|
||||
// before iOS 6, so just generate an identifier and store it
|
||||
uuid = [[NSUserDefaults standardUserDefaults]
|
||||
objectForKey:@"identiferForVendor"];
|
||||
if (!uuid) {
|
||||
CFUUIDRef cfuuid = CFUUIDCreate(NULL);
|
||||
uuid = (__bridge_transfer NSString *)CFUUIDCreateString(NULL, cfuuid);
|
||||
CFRelease(cfuuid);
|
||||
[[NSUserDefaults standardUserDefaults]
|
||||
setObject:uuid
|
||||
forKey:@"identifierForVendor"];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
OSIPhone::get_singleton()->set_unique_ID(String::utf8([uuid UTF8String]));
|
||||
OSIPhone::get_singleton()->set_unique_ID(String::utf8([uuid UTF8String]));
|
||||
|
||||
}; break;
|
||||
/*
|
||||
}; break;
|
||||
/*
|
||||
case 1: {
|
||||
++frame_count;
|
||||
}; break;
|
||||
*/
|
||||
case 1: {
|
||||
case 1: {
|
||||
|
||||
Main::setup2();
|
||||
++frame_count;
|
||||
Main::setup2();
|
||||
++frame_count;
|
||||
|
||||
// this might be necessary before here
|
||||
NSDictionary *dict = [[NSBundle mainBundle] infoDictionary];
|
||||
for (NSString *key in dict) {
|
||||
NSObject *value = [dict objectForKey:key];
|
||||
String ukey = String::utf8([key UTF8String]);
|
||||
// this might be necessary before here
|
||||
NSDictionary *dict = [[NSBundle mainBundle] infoDictionary];
|
||||
for (NSString *key in dict) {
|
||||
NSObject *value = [dict objectForKey:key];
|
||||
String ukey = String::utf8([key UTF8String]);
|
||||
|
||||
// we need a NSObject to Variant conversor
|
||||
// we need a NSObject to Variant conversor
|
||||
|
||||
if ([value isKindOfClass:[NSString class]]) {
|
||||
NSString *str = (NSString *)value;
|
||||
String uval = String::utf8([str UTF8String]);
|
||||
if ([value isKindOfClass:[NSString class]]) {
|
||||
NSString *str = (NSString *)value;
|
||||
String uval = String::utf8([str UTF8String]);
|
||||
|
||||
Globals::get_singleton()->set("Info.plist/" + ukey, uval);
|
||||
Globals::get_singleton()->set("Info.plist/" + ukey, uval);
|
||||
|
||||
} else if ([value isKindOfClass:[NSNumber class]]) {
|
||||
} else if ([value isKindOfClass:[NSNumber class]]) {
|
||||
|
||||
NSNumber *n = (NSNumber *)value;
|
||||
double dval = [n doubleValue];
|
||||
NSNumber *n = (NSNumber *)value;
|
||||
double dval = [n doubleValue];
|
||||
|
||||
Globals::get_singleton()->set("Info.plist/" + ukey, dval);
|
||||
};
|
||||
// do stuff
|
||||
}
|
||||
Globals::get_singleton()->set("Info.plist/" + ukey, dval);
|
||||
};
|
||||
// do stuff
|
||||
}
|
||||
|
||||
}; break;
|
||||
/*
|
||||
}; break;
|
||||
/*
|
||||
case 3: {
|
||||
++frame_count;
|
||||
} break;
|
||||
*/
|
||||
case 2: {
|
||||
case 2: {
|
||||
|
||||
Main::start();
|
||||
++frame_count;
|
||||
Main::start();
|
||||
++frame_count;
|
||||
|
||||
}; break; // no fallthrough
|
||||
}; break; // no fallthrough
|
||||
|
||||
default: {
|
||||
if (OSIPhone::get_singleton()) {
|
||||
if (motionInitialised) {
|
||||
// Just using polling approach for now, we can set this up so it sends
|
||||
// data to us in intervals, might be better. See Apple reference pages
|
||||
// for more details:
|
||||
// https://developer.apple.com/reference/coremotion/cmmotionmanager?language=objc
|
||||
default: {
|
||||
if (OSIPhone::get_singleton()) {
|
||||
if (motionInitialised) {
|
||||
// Just using polling approach for now, we can set this up so it sends
|
||||
// data to us in intervals, might be better. See Apple reference pages
|
||||
// for more details:
|
||||
// https://developer.apple.com/reference/coremotion/cmmotionmanager?language=objc
|
||||
|
||||
// Apple splits our accelerometer date into a gravity and user movement
|
||||
// component. We add them back together
|
||||
CMAcceleration gravity = motionManager.deviceMotion.gravity;
|
||||
CMAcceleration acceleration =
|
||||
motionManager.deviceMotion.userAcceleration;
|
||||
// Apple splits our accelerometer date into a gravity and user movement
|
||||
// component. We add them back together
|
||||
CMAcceleration gravity = motionManager.deviceMotion.gravity;
|
||||
CMAcceleration acceleration =
|
||||
motionManager.deviceMotion.userAcceleration;
|
||||
|
||||
///@TODO We don't seem to be getting data here, is my device broken or
|
||||
/// is this code incorrect?
|
||||
CMMagneticField magnetic =
|
||||
motionManager.deviceMotion.magneticField.field;
|
||||
///@TODO We don't seem to be getting data here, is my device broken or
|
||||
/// is this code incorrect?
|
||||
CMMagneticField magnetic =
|
||||
motionManager.deviceMotion.magneticField.field;
|
||||
|
||||
///@TODO we can access rotationRate as a CMRotationRate variable
|
||||
///(processed date) or CMGyroData (raw data), have to see what works
|
||||
/// best
|
||||
CMRotationRate rotation = motionManager.deviceMotion.rotationRate;
|
||||
///@TODO we can access rotationRate as a CMRotationRate variable
|
||||
///(processed date) or CMGyroData (raw data), have to see what works
|
||||
/// best
|
||||
CMRotationRate rotation = motionManager.deviceMotion.rotationRate;
|
||||
|
||||
// Adjust for screen orientation.
|
||||
// [[UIDevice currentDevice] orientation] changes even if we've fixed
|
||||
// our orientation which is not a good thing when you're trying to get
|
||||
// your user to move the screen in all directions and want consistent
|
||||
// output
|
||||
// Adjust for screen orientation.
|
||||
// [[UIDevice currentDevice] orientation] changes even if we've fixed
|
||||
// our orientation which is not a good thing when you're trying to get
|
||||
// your user to move the screen in all directions and want consistent
|
||||
// output
|
||||
|
||||
///@TODO Using [[UIApplication sharedApplication] statusBarOrientation]
|
||||
/// is a bit of a hack. Godot obviously knows the orientation so maybe
|
||||
/// we
|
||||
// can use that instead? (note that left and right seem swapped)
|
||||
///@TODO Using [[UIApplication sharedApplication] statusBarOrientation]
|
||||
/// is a bit of a hack. Godot obviously knows the orientation so maybe
|
||||
/// we
|
||||
// can use that instead? (note that left and right seem swapped)
|
||||
|
||||
switch ([[UIApplication sharedApplication] statusBarOrientation]) {
|
||||
case UIDeviceOrientationLandscapeLeft: {
|
||||
OSIPhone::get_singleton()->update_gravity(-gravity.y, gravity.x,
|
||||
gravity.z);
|
||||
OSIPhone::get_singleton()->update_accelerometer(
|
||||
-(acceleration.y + gravity.y), (acceleration.x + gravity.x),
|
||||
acceleration.z + gravity.z);
|
||||
OSIPhone::get_singleton()->update_magnetometer(
|
||||
-magnetic.y, magnetic.x, magnetic.z);
|
||||
OSIPhone::get_singleton()->update_gyroscope(-rotation.y, rotation.x,
|
||||
rotation.z);
|
||||
}; break;
|
||||
case UIDeviceOrientationLandscapeRight: {
|
||||
OSIPhone::get_singleton()->update_gravity(gravity.y, -gravity.x,
|
||||
gravity.z);
|
||||
OSIPhone::get_singleton()->update_accelerometer(
|
||||
(acceleration.y + gravity.y), -(acceleration.x + gravity.x),
|
||||
acceleration.z + gravity.z);
|
||||
OSIPhone::get_singleton()->update_magnetometer(
|
||||
magnetic.y, -magnetic.x, magnetic.z);
|
||||
OSIPhone::get_singleton()->update_gyroscope(rotation.y, -rotation.x,
|
||||
rotation.z);
|
||||
}; break;
|
||||
case UIDeviceOrientationPortraitUpsideDown: {
|
||||
OSIPhone::get_singleton()->update_gravity(-gravity.x, gravity.y,
|
||||
gravity.z);
|
||||
OSIPhone::get_singleton()->update_accelerometer(
|
||||
-(acceleration.x + gravity.x), (acceleration.y + gravity.y),
|
||||
acceleration.z + gravity.z);
|
||||
OSIPhone::get_singleton()->update_magnetometer(
|
||||
-magnetic.x, magnetic.y, magnetic.z);
|
||||
OSIPhone::get_singleton()->update_gyroscope(-rotation.x, rotation.y,
|
||||
rotation.z);
|
||||
}; break;
|
||||
default: { // assume portrait
|
||||
OSIPhone::get_singleton()->update_gravity(gravity.x, gravity.y,
|
||||
gravity.z);
|
||||
OSIPhone::get_singleton()->update_accelerometer(
|
||||
acceleration.x + gravity.x, acceleration.y + gravity.y,
|
||||
acceleration.z + gravity.z);
|
||||
OSIPhone::get_singleton()->update_magnetometer(magnetic.x, magnetic.y,
|
||||
magnetic.z);
|
||||
OSIPhone::get_singleton()->update_gyroscope(rotation.x, rotation.y,
|
||||
rotation.z);
|
||||
}; break;
|
||||
};
|
||||
}
|
||||
switch ([[UIApplication sharedApplication] statusBarOrientation]) {
|
||||
case UIDeviceOrientationLandscapeLeft: {
|
||||
OSIPhone::get_singleton()->update_gravity(-gravity.y, gravity.x,
|
||||
gravity.z);
|
||||
OSIPhone::get_singleton()->update_accelerometer(
|
||||
-(acceleration.y + gravity.y), (acceleration.x + gravity.x),
|
||||
acceleration.z + gravity.z);
|
||||
OSIPhone::get_singleton()->update_magnetometer(
|
||||
-magnetic.y, magnetic.x, magnetic.z);
|
||||
OSIPhone::get_singleton()->update_gyroscope(-rotation.y, rotation.x,
|
||||
rotation.z);
|
||||
}; break;
|
||||
case UIDeviceOrientationLandscapeRight: {
|
||||
OSIPhone::get_singleton()->update_gravity(gravity.y, -gravity.x,
|
||||
gravity.z);
|
||||
OSIPhone::get_singleton()->update_accelerometer(
|
||||
(acceleration.y + gravity.y), -(acceleration.x + gravity.x),
|
||||
acceleration.z + gravity.z);
|
||||
OSIPhone::get_singleton()->update_magnetometer(
|
||||
magnetic.y, -magnetic.x, magnetic.z);
|
||||
OSIPhone::get_singleton()->update_gyroscope(rotation.y, -rotation.x,
|
||||
rotation.z);
|
||||
}; break;
|
||||
case UIDeviceOrientationPortraitUpsideDown: {
|
||||
OSIPhone::get_singleton()->update_gravity(-gravity.x, gravity.y,
|
||||
gravity.z);
|
||||
OSIPhone::get_singleton()->update_accelerometer(
|
||||
-(acceleration.x + gravity.x), (acceleration.y + gravity.y),
|
||||
acceleration.z + gravity.z);
|
||||
OSIPhone::get_singleton()->update_magnetometer(
|
||||
-magnetic.x, magnetic.y, magnetic.z);
|
||||
OSIPhone::get_singleton()->update_gyroscope(-rotation.x, rotation.y,
|
||||
rotation.z);
|
||||
}; break;
|
||||
default: { // assume portrait
|
||||
OSIPhone::get_singleton()->update_gravity(gravity.x, gravity.y,
|
||||
gravity.z);
|
||||
OSIPhone::get_singleton()->update_accelerometer(
|
||||
acceleration.x + gravity.x, acceleration.y + gravity.y,
|
||||
acceleration.z + gravity.z);
|
||||
OSIPhone::get_singleton()->update_magnetometer(magnetic.x, magnetic.y,
|
||||
magnetic.z);
|
||||
OSIPhone::get_singleton()->update_gyroscope(rotation.x, rotation.y,
|
||||
rotation.z);
|
||||
}; break;
|
||||
};
|
||||
}
|
||||
|
||||
bool quit_request = OSIPhone::get_singleton()->iterate();
|
||||
bool quit_request = OSIPhone::get_singleton()->iterate();
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
|
||||
@ -595,9 +595,9 @@ static int frame_count = 0;
|
||||
int backingWidth;
|
||||
int backingHeight;
|
||||
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES,
|
||||
GL_RENDERBUFFER_WIDTH_OES, &backingWidth);
|
||||
GL_RENDERBUFFER_WIDTH_OES, &backingWidth);
|
||||
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES,
|
||||
GL_RENDERBUFFER_HEIGHT_OES, &backingHeight);
|
||||
GL_RENDERBUFFER_HEIGHT_OES, &backingHeight);
|
||||
|
||||
iphone_main(backingWidth, backingHeight, gargc, gargv);
|
||||
|
||||
@ -605,8 +605,7 @@ static int frame_count = 0;
|
||||
view_controller.view = glView;
|
||||
window.rootViewController = view_controller;
|
||||
|
||||
_set_keep_screen_on(bool(GLOBAL_DEF("display/keep_screen_on", true)) ? YES
|
||||
: NO);
|
||||
_set_keep_screen_on(bool(GLOBAL_DEF("display/keep_screen_on", true)) ? YES : NO);
|
||||
glView.useCADisplayLink =
|
||||
bool(GLOBAL_DEF("display.iOS/use_cadisplaylink", true)) ? YES : NO;
|
||||
printf("cadisaplylink: %d", glView.useCADisplayLink);
|
||||
@ -621,7 +620,7 @@ static int frame_count = 0;
|
||||
if (motionManager.deviceMotionAvailable) {
|
||||
motionManager.deviceMotionUpdateInterval = 1.0 / 70.0;
|
||||
[motionManager startDeviceMotionUpdatesUsingReferenceFrame:
|
||||
CMAttitudeReferenceFrameXMagneticNorthZVertical];
|
||||
CMAttitudeReferenceFrameXMagneticNorthZVertical];
|
||||
motionInitialised = YES;
|
||||
};
|
||||
};
|
||||
@ -652,15 +651,15 @@ static int frame_count = 0;
|
||||
|
||||
// Account Configuration info - must be set
|
||||
[MobileAppTracker initializeWithMATAdvertiserId:advertiser_id
|
||||
MATConversionKey:conversion_key];
|
||||
MATConversionKey:conversion_key];
|
||||
|
||||
// Used to pass us the IFA, enables highly accurate 1-to-1 attribution.
|
||||
// Required for many advertising networks.
|
||||
[MobileAppTracker
|
||||
setAppleAdvertisingIdentifier:[[ASIdentifierManager sharedManager]
|
||||
advertisingIdentifier]
|
||||
advertisingTrackingEnabled:[[ASIdentifierManager sharedManager]
|
||||
isAdvertisingTrackingEnabled]];
|
||||
advertisingIdentifier]
|
||||
advertisingTrackingEnabled:[[ASIdentifierManager sharedManager]
|
||||
isAdvertisingTrackingEnabled]];
|
||||
|
||||
#endif
|
||||
};
|
||||
@ -728,7 +727,7 @@ static int frame_count = 0;
|
||||
};
|
||||
|
||||
// Fixed audio can not resume if it is interrupted cause by an incoming phone call
|
||||
if(AudioDriverIphone::get_singleton() != NULL)
|
||||
if (AudioDriverIphone::get_singleton() != NULL)
|
||||
AudioDriverIphone::get_singleton()->start();
|
||||
}
|
||||
|
||||
@ -742,16 +741,16 @@ static int frame_count = 0;
|
||||
|
||||
// For 4.2+ support
|
||||
- (BOOL)application:(UIApplication *)application
|
||||
openURL:(NSURL *)url
|
||||
openURL:(NSURL *)url
|
||||
sourceApplication:(NSString *)sourceApplication
|
||||
annotation:(id)annotation {
|
||||
annotation:(id)annotation {
|
||||
#ifdef MODULE_PARSE_ENABLED
|
||||
NSLog(@"Handling application openURL");
|
||||
return
|
||||
[[FBSDKApplicationDelegate sharedInstance] application:application
|
||||
openURL:url
|
||||
sourceApplication:sourceApplication
|
||||
annotation:annotation];
|
||||
openURL:url
|
||||
sourceApplication:sourceApplication
|
||||
annotation:annotation];
|
||||
#endif
|
||||
|
||||
#ifdef MODULE_FACEBOOKSCORER_IOS_ENABLED
|
||||
|
@ -36,7 +36,7 @@ void iOS::_bind_methods() {
|
||||
ObjectTypeDB::bind_method(_MD("get_rate_url", "app_id"), &iOS::get_rate_url);
|
||||
};
|
||||
|
||||
void iOS::alert(const char* p_alert, const char* p_title) {
|
||||
void iOS::alert(const char *p_alert, const char *p_title) {
|
||||
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:[NSString stringWithUTF8String:p_title] message:[NSString stringWithUTF8String:p_alert] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] autorelease];
|
||||
[alert show];
|
||||
}
|
||||
|
@ -257,7 +257,6 @@ AudioDriverOSX::AudioDriverOSX() {
|
||||
samples_in = NULL;
|
||||
};
|
||||
|
||||
AudioDriverOSX::~AudioDriverOSX() {
|
||||
};
|
||||
AudioDriverOSX::~AudioDriverOSX(){};
|
||||
|
||||
#endif
|
||||
|
@ -236,7 +236,7 @@ static bool mouse_down_control = false;
|
||||
//Event retrieval blocks until resize is over. Call Main::iteration() directly.
|
||||
Main::iteration();
|
||||
}
|
||||
|
||||
|
||||
//_GodotInputFramebufferSize(window, fbRect.size.width, fbRect.size.height);
|
||||
//_GodotInputWindowSize(window, contentRect.size.width, contentRect.size.height);
|
||||
//_GodotInputWindowDamage(window);
|
||||
@ -1725,7 +1725,7 @@ OS_OSX::OS_OSX() {
|
||||
NSMenu *apple_menu = [[NSMenu alloc] initWithTitle:@""];
|
||||
title = [NSString stringWithFormat:NSLocalizedString(@"About %@", nil), nsappname];
|
||||
[apple_menu addItemWithTitle:title action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""];
|
||||
|
||||
|
||||
[apple_menu addItem:[NSMenuItem separatorItem]];
|
||||
|
||||
NSMenu *services = [[NSMenu alloc] initWithTitle:@""];
|
||||
@ -1740,7 +1740,7 @@ OS_OSX::OS_OSX() {
|
||||
[apple_menu addItemWithTitle:title action:@selector(hide:) keyEquivalent:@"h"];
|
||||
|
||||
menu_item = [apple_menu addItemWithTitle:NSLocalizedString(@"Hide Others", nil) action:@selector(hideOtherApplications:) keyEquivalent:@"h"];
|
||||
[menu_item setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)];
|
||||
[menu_item setKeyEquivalentModifierMask:(NSAlternateKeyMask | NSCommandKeyMask)];
|
||||
|
||||
[apple_menu addItemWithTitle:NSLocalizedString(@"Show all", nil) action:@selector(unhideAllApplications:) keyEquivalent:@""];
|
||||
|
||||
@ -1752,12 +1752,12 @@ OS_OSX::OS_OSX() {
|
||||
// Setup menu bar
|
||||
NSMenu *main_menu = [[NSMenu alloc] initWithTitle:@""];
|
||||
menu_item = [main_menu addItemWithTitle:@"" action:nil keyEquivalent:@""];
|
||||
[main_menu setSubmenu:apple_menu forItem:menu_item];
|
||||
[main_menu setSubmenu:apple_menu forItem:menu_item];
|
||||
[NSApp setMainMenu:main_menu];
|
||||
|
||||
[main_menu release];
|
||||
[apple_menu release];
|
||||
|
||||
|
||||
[NSApp finishLaunching];
|
||||
|
||||
delegate = [[GodotApplicationDelegate alloc] init];
|
||||
|
@ -35,6 +35,9 @@
|
||||
#include "GLES2/gl2.h"
|
||||
#include "os_winrt.h"
|
||||
|
||||
/** clang-format does not play nice with this C++/CX hybrid, needs investigation. */
|
||||
/* clang-format off */
|
||||
|
||||
namespace GodotWinRT
|
||||
{
|
||||
ref class App sealed : public Windows::ApplicationModel::Core::IFrameworkView
|
||||
@ -106,3 +109,5 @@ namespace GodotWinRT
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
/* clang-format on */
|
||||
|
@ -37,8 +37,7 @@ using namespace Windows::Media::MediaProperties;
|
||||
using namespace Windows::Media::Editing;
|
||||
using namespace Windows::Foundation;
|
||||
|
||||
const char * AudioDriverWinRT::get_name() const
|
||||
{
|
||||
const char *AudioDriverWinRT::get_name() const {
|
||||
return "WinRT";
|
||||
}
|
||||
|
||||
@ -50,7 +49,6 @@ Error AudioDriverWinRT::init() {
|
||||
pcm_open = false;
|
||||
samples_in = NULL;
|
||||
|
||||
|
||||
mix_rate = 48000;
|
||||
output_format = OUTPUT_STEREO;
|
||||
channels = 2;
|
||||
@ -58,11 +56,11 @@ Error AudioDriverWinRT::init() {
|
||||
int latency = GLOBAL_DEF("audio/output_latency", 25);
|
||||
buffer_size = nearest_power_of_2(latency * mix_rate / 1000);
|
||||
|
||||
samples_in = memnew_arr(int32_t, buffer_size*channels);
|
||||
samples_in = memnew_arr(int32_t, buffer_size * channels);
|
||||
for (int i = 0; i < AUDIO_BUFFERS; i++) {
|
||||
samples_out[i] = memnew_arr(int16_t, buffer_size*channels);
|
||||
samples_out[i] = memnew_arr(int16_t, buffer_size * channels);
|
||||
xaudio_buffer[i].AudioBytes = buffer_size * channels * sizeof(int16_t);
|
||||
xaudio_buffer[i].pAudioData = (const BYTE*)(samples_out[i]);
|
||||
xaudio_buffer[i].pAudioData = (const BYTE *)(samples_out[i]);
|
||||
xaudio_buffer[i].Flags = 0;
|
||||
}
|
||||
|
||||
@ -100,15 +98,14 @@ Error AudioDriverWinRT::init() {
|
||||
return OK;
|
||||
};
|
||||
|
||||
void AudioDriverWinRT::thread_func(void* p_udata) {
|
||||
void AudioDriverWinRT::thread_func(void *p_udata) {
|
||||
|
||||
AudioDriverWinRT* ad = (AudioDriverWinRT*)p_udata;
|
||||
AudioDriverWinRT *ad = (AudioDriverWinRT *)p_udata;
|
||||
|
||||
uint64_t usdelay = (ad->buffer_size / float(ad->mix_rate)) * 1000000;
|
||||
|
||||
while (!ad->exit_thread) {
|
||||
|
||||
|
||||
if (!ad->active) {
|
||||
|
||||
for (int i = 0; i < AUDIO_BUFFERS; i++) {
|
||||
@ -123,30 +120,27 @@ void AudioDriverWinRT::thread_func(void* p_udata) {
|
||||
|
||||
ad->unlock();
|
||||
|
||||
for (unsigned int i = 0;i < ad->buffer_size*ad->channels;i++) {
|
||||
for (unsigned int i = 0; i < ad->buffer_size * ad->channels; i++) {
|
||||
|
||||
ad->samples_out[ad->current_buffer][i] = ad->samples_in[i] >> 16;
|
||||
}
|
||||
|
||||
ad->xaudio_buffer[ad->current_buffer].Flags = 0;
|
||||
ad->xaudio_buffer[ad->current_buffer].AudioBytes = ad->buffer_size * ad->channels * sizeof(int16_t);
|
||||
ad->xaudio_buffer[ad->current_buffer].pAudioData = (const BYTE*)(ad->samples_out[ad->current_buffer]);
|
||||
ad->xaudio_buffer[ad->current_buffer].pAudioData = (const BYTE *)(ad->samples_out[ad->current_buffer]);
|
||||
ad->xaudio_buffer[ad->current_buffer].PlayBegin = 0;
|
||||
ad->source_voice->SubmitSourceBuffer(&(ad->xaudio_buffer[ad->current_buffer]));
|
||||
|
||||
ad->current_buffer = (ad->current_buffer + 1) % AUDIO_BUFFERS;
|
||||
|
||||
XAUDIO2_VOICE_STATE state;
|
||||
while (ad->source_voice->GetState(&state), state.BuffersQueued > AUDIO_BUFFERS - 1)
|
||||
{
|
||||
while (ad->source_voice->GetState(&state), state.BuffersQueued > AUDIO_BUFFERS - 1) {
|
||||
WaitForSingleObject(ad->voice_callback->buffer_end_event, INFINITE);
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
ad->thread_exited = true;
|
||||
|
||||
};
|
||||
|
||||
void AudioDriverWinRT::start() {
|
||||
@ -236,9 +230,6 @@ AudioDriverWinRT::AudioDriverWinRT() {
|
||||
current_buffer = 0;
|
||||
};
|
||||
|
||||
AudioDriverWinRT::~AudioDriverWinRT() {
|
||||
|
||||
AudioDriverWinRT::~AudioDriverWinRT(){
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
@ -31,14 +31,14 @@
|
||||
|
||||
#include "servers/audio/audio_server_sw.h"
|
||||
|
||||
#include "core/os/thread.h"
|
||||
#include "core/os/mutex.h"
|
||||
#include "core/os/thread.h"
|
||||
|
||||
#include <windows.h>
|
||||
#include <mmsystem.h>
|
||||
#include <mmreg.h>
|
||||
#include <xaudio2.h>
|
||||
#include <mmsystem.h>
|
||||
#include <windows.h>
|
||||
#include <wrl/client.h>
|
||||
#include <xaudio2.h>
|
||||
|
||||
class AudioDriverWinRT : public AudioDriverSW {
|
||||
|
||||
@ -49,26 +49,28 @@ class AudioDriverWinRT : public AudioDriverSW {
|
||||
struct XAudio2DriverVoiceCallback : public IXAudio2VoiceCallback {
|
||||
|
||||
HANDLE buffer_end_event;
|
||||
XAudio2DriverVoiceCallback() : buffer_end_event(CreateEvent(NULL, FALSE, FALSE, NULL)) {}
|
||||
void STDMETHODCALLTYPE OnBufferEnd(void* pBufferContext) { /*print_line("buffer ended");*/ SetEvent(buffer_end_event); }
|
||||
XAudio2DriverVoiceCallback()
|
||||
: buffer_end_event(CreateEvent(NULL, FALSE, FALSE, NULL)) {}
|
||||
void STDMETHODCALLTYPE OnBufferEnd(void *pBufferContext) { /*print_line("buffer ended");*/
|
||||
SetEvent(buffer_end_event);
|
||||
}
|
||||
|
||||
//Unused methods are stubs
|
||||
void STDMETHODCALLTYPE OnStreamEnd() { }
|
||||
void STDMETHODCALLTYPE OnVoiceProcessingPassEnd() { }
|
||||
void STDMETHODCALLTYPE OnVoiceProcessingPassStart(UINT32 SamplesRequired) { }
|
||||
void STDMETHODCALLTYPE OnBufferStart(void * pBufferContext) { }
|
||||
void STDMETHODCALLTYPE OnLoopEnd(void * pBufferContext) { }
|
||||
void STDMETHODCALLTYPE OnVoiceError(void * pBufferContext, HRESULT Error) { }
|
||||
|
||||
void STDMETHODCALLTYPE OnStreamEnd() {}
|
||||
void STDMETHODCALLTYPE OnVoiceProcessingPassEnd() {}
|
||||
void STDMETHODCALLTYPE OnVoiceProcessingPassStart(UINT32 SamplesRequired) {}
|
||||
void STDMETHODCALLTYPE OnBufferStart(void *pBufferContext) {}
|
||||
void STDMETHODCALLTYPE OnLoopEnd(void *pBufferContext) {}
|
||||
void STDMETHODCALLTYPE OnVoiceError(void *pBufferContext, HRESULT Error) {}
|
||||
};
|
||||
|
||||
Thread* thread;
|
||||
Mutex* mutex;
|
||||
Thread *thread;
|
||||
Mutex *mutex;
|
||||
|
||||
int32_t* samples_in;
|
||||
int16_t* samples_out[AUDIO_BUFFERS];
|
||||
int32_t *samples_in;
|
||||
int16_t *samples_out[AUDIO_BUFFERS];
|
||||
|
||||
static void thread_func(void* p_udata);
|
||||
static void thread_func(void *p_udata);
|
||||
int buffer_size;
|
||||
|
||||
unsigned int mix_rate;
|
||||
@ -84,14 +86,13 @@ class AudioDriverWinRT : public AudioDriverSW {
|
||||
WAVEFORMATEX wave_format;
|
||||
Microsoft::WRL::ComPtr<IXAudio2> xaudio;
|
||||
int current_buffer;
|
||||
IXAudio2MasteringVoice* mastering_voice;
|
||||
IXAudio2MasteringVoice *mastering_voice;
|
||||
XAUDIO2_BUFFER xaudio_buffer[AUDIO_BUFFERS];
|
||||
IXAudio2SourceVoice* source_voice;
|
||||
XAudio2DriverVoiceCallback* voice_callback;
|
||||
IXAudio2SourceVoice *source_voice;
|
||||
XAudio2DriverVoiceCallback *voice_callback;
|
||||
|
||||
public:
|
||||
|
||||
const char* get_name() const;
|
||||
const char *get_name() const;
|
||||
|
||||
virtual Error init();
|
||||
virtual void start();
|
||||
|
@ -101,8 +101,7 @@ Error ContextEGL::initialize() {
|
||||
|
||||
try {
|
||||
|
||||
const EGLint displayAttributes[] =
|
||||
{
|
||||
const EGLint displayAttributes[] = {
|
||||
/*EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
|
||||
EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE, 9,
|
||||
EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE, 3,
|
||||
@ -114,9 +113,9 @@ Error ContextEGL::initialize() {
|
||||
// EGL_ANGLE_DISPLAY_ALLOW_RENDER_TO_BACK_BUFFER is an optimization that can have large performance benefits on mobile devices.
|
||||
// Its syntax is subject to change, though. Please update your Visual Studio templates if you experience compilation issues with it.
|
||||
//EGL_ANGLE_DISPLAY_ALLOW_RENDER_TO_BACK_BUFFER, EGL_TRUE,
|
||||
|
||||
// EGL_PLATFORM_ANGLE_ENABLE_AUTOMATIC_TRIM_ANGLE is an option that enables ANGLE to automatically call
|
||||
// the IDXGIDevice3::Trim method on behalf of the application when it gets suspended.
|
||||
|
||||
// EGL_PLATFORM_ANGLE_ENABLE_AUTOMATIC_TRIM_ANGLE is an option that enables ANGLE to automatically call
|
||||
// the IDXGIDevice3::Trim method on behalf of the application when it gets suspended.
|
||||
// Calling IDXGIDevice3::Trim when an application is suspended is a Windows Store application certification requirement.
|
||||
EGL_PLATFORM_ANGLE_ENABLE_AUTOMATIC_TRIM_ANGLE, EGL_TRUE,
|
||||
EGL_NONE,
|
||||
|
@ -53,7 +53,7 @@ uint32_t JoystickWinrt::process_controllers(uint32_t p_last_id) {
|
||||
|
||||
case ControllerType::GAMEPAD_CONTROLLER: {
|
||||
|
||||
GamepadReading reading = ((Gamepad ^) joy.controller_reference)->GetCurrentReading();
|
||||
GamepadReading reading = ((Gamepad ^)joy.controller_reference)->GetCurrentReading();
|
||||
|
||||
int button_mask = (int)GamepadButtons::Menu;
|
||||
for (int j = 0; j < 14; j++) {
|
||||
@ -162,7 +162,7 @@ void JoystickWinrt::joypad_vibration_start(int p_device, float p_weak_magnitude,
|
||||
GamepadVibration vibration;
|
||||
vibration.LeftMotor = p_strong_magnitude;
|
||||
vibration.RightMotor = p_weak_magnitude;
|
||||
((Gamepad ^) joy.controller_reference)->Vibration = vibration;
|
||||
((Gamepad ^)joy.controller_reference)->Vibration = vibration;
|
||||
|
||||
joy.ff_timestamp = p_timestamp;
|
||||
joy.ff_end_timestamp = p_duration == 0 ? 0 : p_timestamp + (uint64_t)(p_duration * 1000000.0);
|
||||
@ -176,7 +176,7 @@ void JoystickWinrt::joypad_vibration_stop(int p_device, uint64_t p_timestamp) {
|
||||
GamepadVibration vibration;
|
||||
vibration.LeftMotor = 0.0;
|
||||
vibration.RightMotor = 0.0;
|
||||
((Gamepad ^) joy.controller_reference)->Vibration = vibration;
|
||||
((Gamepad ^)joy.controller_reference)->Vibration = vibration;
|
||||
|
||||
joy.ff_timestamp = p_timestamp;
|
||||
joy.vibrating = false;
|
||||
|
@ -33,10 +33,12 @@
|
||||
|
||||
ref class JoystickWinrt sealed {
|
||||
|
||||
/** clang-format breaks this, it does not understand this token. */
|
||||
/* clang-format off */
|
||||
internal:
|
||||
|
||||
void register_events();
|
||||
uint32_t process_controllers(uint32_t p_last_id);
|
||||
/* clang-format on */
|
||||
|
||||
JoystickWinrt();
|
||||
JoystickWinrt(InputDefault *p_input);
|
||||
|
@ -520,12 +520,10 @@ void ItemList::_input_event(const InputEvent &p_event) {
|
||||
if (p_event.type == InputEvent::MOUSE_BUTTON && p_event.mouse_button.button_index == BUTTON_WHEEL_UP && p_event.mouse_button.pressed) {
|
||||
|
||||
scroll_bar->set_val(scroll_bar->get_val() - scroll_bar->get_page() * p_event.mouse_button.factor / 8);
|
||||
|
||||
}
|
||||
if (p_event.type == InputEvent::MOUSE_BUTTON && p_event.mouse_button.button_index == BUTTON_WHEEL_DOWN && p_event.mouse_button.pressed) {
|
||||
|
||||
scroll_bar->set_val(scroll_bar->get_val() + scroll_bar->get_page() * p_event.mouse_button.factor / 8);
|
||||
|
||||
}
|
||||
|
||||
if (p_event.is_pressed() && items.size() > 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user