diff --git a/core/image.cpp b/core/image.cpp index 579c1c1f6c3..ed751fcb1d7 100644 --- a/core/image.cpp +++ b/core/image.cpp @@ -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; diff --git a/core/image.h b/core/image.h index 0ecf0eec08c..e15f0244d74 100644 --- a/core/image.h +++ b/core/image.h @@ -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; diff --git a/core/io/compression.cpp b/core/io/compression.cpp index 672b8399c42..7ced3cc09bb 100644 --- a/core/io/compression.cpp +++ b/core/io/compression.cpp @@ -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]; diff --git a/core/ustring.h b/core/ustring.h index c6b894143f4..cad77e5ba0f 100644 --- a/core/ustring.h +++ b/core/ustring.h @@ -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; diff --git a/editor/io_plugins/editor_mesh_import_plugin.cpp b/editor/io_plugins/editor_mesh_import_plugin.cpp index 1ad829e9962..da0cc25c56a 100644 --- a/editor/io_plugins/editor_mesh_import_plugin.cpp +++ b/editor/io_plugins/editor_mesh_import_plugin.cpp @@ -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 diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index 8041f3ff573..fabb67e310a 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -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) { diff --git a/platform/iphone/app_delegate.mm b/platform/iphone/app_delegate.mm index cdd31694536..b04dd233de6 100644 --- a/platform/iphone/app_delegate.mm +++ b/platform/iphone/app_delegate.mm @@ -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 diff --git a/platform/iphone/ios.mm b/platform/iphone/ios.mm index b1a8b70e200..4bde9084ce5 100644 --- a/platform/iphone/ios.mm +++ b/platform/iphone/ios.mm @@ -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]; } diff --git a/platform/osx/audio_driver_osx.cpp b/platform/osx/audio_driver_osx.cpp index 1eb1591a4e2..e46044a6396 100644 --- a/platform/osx/audio_driver_osx.cpp +++ b/platform/osx/audio_driver_osx.cpp @@ -257,7 +257,6 @@ AudioDriverOSX::AudioDriverOSX() { samples_in = NULL; }; -AudioDriverOSX::~AudioDriverOSX() { -}; +AudioDriverOSX::~AudioDriverOSX(){}; #endif diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm index a76a3b3c7e3..aadbb757987 100644 --- a/platform/osx/os_osx.mm +++ b/platform/osx/os_osx.mm @@ -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]; diff --git a/platform/winrt/app.h b/platform/winrt/app.h index 7c820547bf1..48e5f7520bb 100644 --- a/platform/winrt/app.h +++ b/platform/winrt/app.h @@ -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 */ diff --git a/platform/winrt/audio_driver_winrt.cpp b/platform/winrt/audio_driver_winrt.cpp index ff46244ac3d..36b97bcd9be 100644 --- a/platform/winrt/audio_driver_winrt.cpp +++ b/platform/winrt/audio_driver_winrt.cpp @@ -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(){ }; - - diff --git a/platform/winrt/audio_driver_winrt.h b/platform/winrt/audio_driver_winrt.h index d7a69994f8f..8a87bdf42d0 100644 --- a/platform/winrt/audio_driver_winrt.h +++ b/platform/winrt/audio_driver_winrt.h @@ -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(); diff --git a/platform/winrt/gl_context_egl.cpp b/platform/winrt/gl_context_egl.cpp index 0b5290a896e..c34eb54d425 100644 --- a/platform/winrt/gl_context_egl.cpp +++ b/platform/winrt/gl_context_egl.cpp @@ -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, diff --git a/platform/winrt/joystick_winrt.cpp b/platform/winrt/joystick_winrt.cpp index 71669c66d9c..960581130b4 100644 --- a/platform/winrt/joystick_winrt.cpp +++ b/platform/winrt/joystick_winrt.cpp @@ -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; diff --git a/platform/winrt/joystick_winrt.h b/platform/winrt/joystick_winrt.h index a63384449fa..bfb773e9341 100644 --- a/platform/winrt/joystick_winrt.h +++ b/platform/winrt/joystick_winrt.h @@ -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); diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp index af5187aaa3d..5de8c45eb2c 100644 --- a/scene/gui/item_list.cpp +++ b/scene/gui/item_list.cpp @@ -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) {