All the warnings are factored out of the platform-specific files and moved to
SConstruct. Will have to check that it does not introduce regressions on some
platforms/compilers.
(cherry picked from commit 31107daa1a)
The ID property for InputEvents is set by `SceneTree` when sending the event down the tree.
So there's no need for the platform specific code to set this value when it will later be overriden anyway...
I can show you the code
Pretty, with proper whitespace
Tell me, coder, now when did
You last write readable code?
I can open your eyes
Make you see your bad indent
Force you to respect the style
The core devs agreed upon
A whole new world
A new fantastic code format
A de facto standard
With some sugar
Enforced with clang-format
A whole new world
A dazzling style we all dreamed of
And when we read it through
It's crystal clear
That now we're in a whole new world of code
The other subfolders of tools/ had already been moved to either
editor/, misc/ or thirdparty/, so the hiding the editor code that
deep was no longer meaningful.
Done:
- X11, server (tested)
- Windows (developed, would be nice to retest)
- OSX (not tested)
Prepared (not developed):
- Android (code is here, but may not compile)
- iphone
- winrt
- bb10
- haiku
- javascript
Now InputDefault is responsible for giving out joypad device IDs to the platform, instead of each platform handling this itself.
This makes it possible for c++ modules to add their own "custom" gamepad devices, without the risk of messing up events in case the user also has regular gamepads attached (using the OS code).
For now, it's implemented for the main desktop platforms.
Possible targets for future work: android, uwp, javascript
In #7839 I see the same error that was fixed in #7833 occuring on the
Windows platform. This moves the audio driver closing to the same place
in OS_Windows::finalize() as it is in OS_X11::finalize()
This fixes#7839
This doesn't seem to be needed anymore and the code to free the unused
rasterizer was throwing a memory violation since it was getting set to a
value somehow.
We should probably create a specific function for setting the
recv buffer anyway. UDP sockets does not need to bind (listen)
to be able to call recvfrom. This is especially useful for clients
who just call set_send_address and start communicating with a server.
- TCP:
- `listen` bind to wildcard "*" -> dual stack socket
- `listen` bind to address -> socket from address type
- `connect` -> resolve using best protocol (UNSPEC), socket from address type
- UDP:
- `listen` bind to wildcard "*" -> dual stack socket
- `listen` bind to address -> socket from address type
- `put_packet`/`put_var` -> resolve using TYPE_ANY (UNSPEC), socket from address type
(to change socket type you must first call `close` it)
Windows did not compile anymore because DI8DEVTYPE_JOYPAD obviously isn't defined in the directx headers ^^
I also did the same renaming as in #7473 for the windows platform and reverted the changes in the gamepad
mappings.
Passed as a compiler define to be sure it is always define before windows.h
is loaded. This means that Godot officially requires Vista API or later, it will
not work on Windows XP or earlier.
Also fix a bogus check for Windows 7 API.
-Changed SectionedPropertyEditor to support this
-Renamed Globals singleton to GlobalConfig, makes more sense.
-Changed the logic behind persisten global settings, instead of the persist checkbox, a revert button is now available
That year should bring the long-awaited OpenGL ES 3.0 compatible renderer
with state-of-the-art rendering techniques tuned to work as low as middle
end handheld devices - without compromising with the possibilities given
for higher end desktop games of course. Great times ahead for the Godot
community and the gamers that will play our games!
IP_Address changes:
- Converts to and from String transparently while handling IPv4 as IPv6
mapped (::ffff:[IP]) address internally.
- Completely remove AddrType enum.
- Setting/Getting of ip array is now only possible through dedicated functions
(ie. set_ipv4, get_ipv4, set_ipv6, get_ipv6)
- Add function to know if the address is a valid IPv4 (for IP implementation and enet)
PacketPeerUDP/StreamPeerTCP/TCP_Server now uses an instance variable
to store the selected ip_type (IPv4/IPv6/ANY, where ANY = dual stack).
All calls to resolve addresses, sending/receving data, connecting/listening
will use that socket type.
Done with `autopep8 --select=E7`, fixes:
- E701 - Put colon-separated compound statement on separate lines.
- E702 - Put semicolon-separated compound statement on separate lines.
- E703 - Put semicolon-separated compound statement on separate lines.
- E711 - Fix comparison with None.
- E712 - Fix (trivial case of) comparison with boolean.
- E713 - Fix (trivial case of) non-membership check.
- E721 - Fix various deprecated code (via lib2to3).
( @Akien : this PR is for current HEAD only, not to be cherry-picked for 2.1.1 )
this is manual revertion of #6501 which introduced a bug that prevented
scons from detecting Mingw under Windows when MSVC was installed.
(thanks to @vnen for finding this)
AND
it fixes the actual bug that prevented scons from detecting MSVC standalone
compiler ( a confusions between ``VSINSTALLDIR`` and ``VCINSTALLDIR`` )
The freeware Standalone MSVC C++ Build Tools are available here :
http://landinghub.visualstudio.com/visual-cpp-build-tools
Not fully happy about the way this one interacts with the various
platforms. Maybe the platform_config.h should be generated by the
SCsub instead of passing a define just to know where is the header.
-Most 2D drawing is implemented
-Missing shaders
-Missing all 3D
-Editor needs to be set on update always to be used, otherwise it does not refresh
-Large parts of editor not working
Under Windows, Scons is now capable of detecting and compiling with
standalone MSVC compilers (aka "Visual C++ Build Tools").
http://landinghub.visualstudio.com/visual-cpp-build-tools
Tried with version 2015, and native x86 and x64 compilers under
Windows 10 pro 64 and Windows 8.1 64, with the default Win8 SDK
provided by the "Visual C++ Build Tools" web-installer.
Follow the same compiling instructions than for compiling with Visual
Studio, except that Visual Studio is no more required.
KNOWN ISSUES :
- ``methods.detect_visual_c_compiler_version()`` will emit a warning message
on computers where the ``VSINSTALLDIR`` environement variable is not present.
But it should compile just fine and still automatically detects the 32 or
64 bits according to the compiler you picked.
TODO :
- eventually, update ``platform/winrt/dectet.py`` with function
``methods.msvc_is_detected()`` and try to compile winrt/UWP with
these standalone compilers (if you did not select Win10 SDK when
installing the standalone tools, you can run it again).
- update doc to make users aware of "Visual C++ Build Tools" aka
"stadalone MSVC".
- eventually, update ``methods.detect_visual_c_compiler_version()``
- Fix buildsystem for WinRT/UWP platform.
- Add audio driver and joystick mapping for WinRT.
- Enable thread class for WinRT.
- Refactor MSVC compiler architecture detection to methods.py, so it can
be used by Windows and WinRT.
For reference, when you include a Windows header (be it directly windows.h or something that includes it)
put it at the end of the includes. it seems I forgot.
This reverts commit 85a5290ee8.
The patch itself is good and it could maybe be readded in the future,
but right now Microsoft forced its Windows 10 "update" on people with older
Intel HD Graphics 3000 IGP without ensuring that they can ship proper drivers,
and such users seem to get Godot crashing due to this patch. Sorry :(
Closes#5452.
When moving or resizing the window, Windows spins up a seperate event-loop, effectively blocking the normal one.
To work around this, we're starting a timer that will continue sending WM_TIMER messages which we can use to keep the mainloop running.
fixes#4695
This allows us not to have to hack our definitions in the upstream files,
making it easier to upgrade to newer versions in the future.
For the include paths to work, the headers are moved to a GL subfolder to
match their upstream location.
Can't create user data folder when project name has ``\ / : * ? " < > |`` characters on OS_Windows & OS_Unix.
So, change it to ``-`` to be able to make folder.
fixes#4928 and it's altanative to #4986.
-Rearrange favorites in fs dock with drag and drop
-Removed import -> sub-scene, moved to scenetree contextual menu
-Removed import -> re-import , moved and integrated to FS dock
-Added ability in FS dock to re-import more than one resource
simultaneously
-Added ability to drag from native filesystem explorer to Godot, only
works on Windows though
-Removed scene reimport merge options, never worked well. Eventually
merging materials should be re-added
-Added ability to set custom root node type when importing scenes
-Re-Import is now automatic, can be configured back to manual in editor
settings
-Added resource previews in property list for many resource types
Also Enables automatic detection of architecture for the MSVC compilers.
Builds without assembly optimisations for x64
Closes issue #3098
Signed-off-by: Aleksandar Danilovic <greatgames.alexandar@gmail.com>
According to MSDN's
documentation (https://msdn.microsoft.com/en-us/library/windows/desktop/bb762181(v=vs.85).aspx),
CSIDL_PERSONAL represents the default path to Windows Document's folder:
"Previous to Version 6.0. The file system directory used to physically
store a user's common repository of documents. A typical path is
C:\Documents and Settings\username\My Documents. This should be
distinguished from the virtual My Documents folder in the namespace. To
access that virtual folder, use SHGetFolderLocation, which returns the
ITEMIDLIST for the virtual location, or refer to the technique described
in Managing the File System."
1) it didn't print the error to the console, only this:
build_res_file(["platform/windows/godot_res.windows.tools.32.o"], ["platform/windows/godot_res.rc"])
scons: *** [platform/windows/godot_res.windows.tools.32.o] Error 1
I had to print the actual command and run it on a console to see the error. The builder should be able to print the command it's running and the error, like it does with compiler invocations, etc.
2) The actual error was a syntax error on line 11 of godot_res.rc. I looked up "FILEVERSION" and "PRODUCTVERSION" (here https://msdn.microsoft.com/en-us/library/windows/desktop/aa381058(v=vs.85).aspx), it says they take 4 numbers as parameters, so I added those 0s, but I'm not sure if they're in the right order.
@masoudbh3 can you check it out? thanks
It builds on msvc just fine with (and without) these changes.
This is achieved using the "no specific formatting" \E[0m tag.
Fixes#2566.
Also remove the hardcoded black background colour and use default bolded terminal font for error message.
Error logs should now look good both on terminals with a dark and light background colour.
Previously all types of errors would be shown as ERROR, thus making for example warnings (WARN_PRINT) somewhat aggressive.
ERROR is displayed in red, WARNING in yellow and SCRIPT ERROR in magenta (though the latter does not seem used so far).
Fixes#1127.
add version_info and icon sections in "export to windows platform".
add version_info and icon to godot exe file (editor & template exe).
fix an problem in image class.
change all default icons to android export icon (a little more rounded).
create an python script for convert file to cpp byte array for use in
'splash.h'.
Added support for 2D shadow casters.
*DANGER* Shaders in CanvasItem CHANGED, if you are using shader in a
CanvasItem and pull this, you will lose them. Shaders now work through a
2D material system similar to 3D. If you don't want to lose the 2D
shader code, save the shader as a .shd, then create a material in
CanvasItem and re-assign the shader.
- fixes issue #1298 : under windows, too long `ar` command lines are split into several smaller command lines.
- fixes issue #1285 : under linux, cross compiling with Mingw-w64 now generates actual 64bits EXE.
- `MINGW32_PREFIX` and `MINGW64_PREFIX` environment variables are also available for Windows.
- started to clean-up the remains of previous hacks and workarounds.
- added some documentation into the script.
-can warp now from viewport and control, in their respective coordinate
systems
-warp is now local to the window on Windows and OSX.
IF YOU RUN OSX, PLEASE TEST THIS! And make sure it works!, new code is
in OS_OSX::warp_mouse_pos. I don't have OSX so i can't test!
This patch removes modifiers when processing key events for the
particular modifier key. For example, previously a Shift keypress
would register as a Shift + Shift modifier event.
This would cause issues when a modifier key as the action key in
the input map, because unpresses of the modifier key don't match as
matching inputs for that action. E.g. if Shift is used as an action,
the stored action event is Shift + Shift modifier (as indicated
in the editor as "Shift + Shift". The unpress event does not have the
Shift modifier set, so the event of unpressing Shift + no modifier
doesn't match the action which has the modifier set.
This patch removes the shift modifier on just pressing the Shift
key down, so the action event is registered as just Shift with
no modifier (as indicated in the editor as "Shift"), which matches
the unpress event.