1
1
Fork 0
mirror of https://github.com/QB64Official/qb64.git synced 2024-07-03 08:51:22 +00:00

Fix scroll wheel on Linux; tidy up licensing info; clean up Windows setup; fix OSX script permissions.

The scroll wheel now behaves correctly on Linux. Reports suggest that the fix does not have any effect
on OSX though. The licensing documentation is updated to reflect the fact that there are no GPL components
included in a QB64 program. Some redundant code was removed from the Windows setup script. OSX setup and
run scripts were missing the executable bit - hopefully the repository will preserve that change.
This commit is contained in:
Luke Ceddia 2015-08-06 21:39:16 +10:00
parent ea20dad4a9
commit c003f0bc20
6 changed files with 13 additions and 55 deletions

View file

@ -1,12 +1,12 @@
=== IMPORTANT LICENSING NOTE FOR QB64 PROGRAMMERS === === IMPORTANT LICENSING NOTE FOR QB64 PROGRAMMERS ===
All executables created with QB64 are subject to the LGPL licence conditions. All executables which perform any kind of sound operation are subject to the LGPL license (due to incorporation of mpglibdll and OpenAL).
All executables which read sound files are subject to the GPL license as well (due to incorporation of libsamplerate). Other components are licensed under various permissive licences.
When distributing your program as an executable all license requirements can be met by: When sound components are included (thus the LGPL is in effect), the easiest way to meet terms of the LGPL is to make your program's source code (.BAS) available.
i) Making your program's source code (.BAS) available and declaring it to be GPL as well as If you are not using sound components, you do not need to release the program's source.
ii) Including this entire license folder distributed with QB64 If you are using fonts, you are bound by the terms of FreeType's license. Somewhere in your software package should include a notice that your program includes the FreeType library (see licence_freetype_ftl.txt for details)
It should be noted that the above is not the sole method one could use to abide by the license conditions In all cases, you should distribute the LICENSE folder with your program.
and that creating closed source QB64 programs is possible when LGPL (not GPL) code is dynamically
linked to, not embedded within your executable. It should be noted that providing source code is not the only way to meet the conditions of the LGPL (eg dynamic linking) but it is by far the easiest from a technical point of view at this current time.
===================================================== =====================================================
The license requirements for components of QB64 are as follows: The license requirements for components of QB64 are as follows:
@ -36,8 +36,7 @@ License: BSD 2-clause license
License Website: http://opensource.org/licenses/BSD-2-Clause License Website: http://opensource.org/licenses/BSD-2-Clause
License File: license_opus.txt License File: license_opus.txt
Location in QB64 distribution: internal/c/parts/audio/conversion/ Location in QB64 distribution: internal/c/parts/audio/conversion/
Note that Opusinfo, which is included in the Opus Tools download, is licensed under the GPL but QB64 does not use those files (hence the appended GPL in the licence file). OpusInfo, which is under a GPL licence, was included in Opus Tools but has been removed from the QB64 distribution.
They are distributed in the download/ folder as source only, for the sake of keeping the original download package whole.
Software/Library Name: mpglibdll Software/Library Name: mpglibdll
Website(s): Website(s):
@ -65,13 +64,6 @@ License Website: http://www.gnu.org/licenses/licenses.html#LGPL
License File: license_gnu_lgpl_2.txt License File: license_gnu_lgpl_2.txt
Location in QB64 distribution: internal/c/parts/audio/out/ Location in QB64 distribution: internal/c/parts/audio/out/
Software/Library Name: OpenAL-soft
Website:http://kcat.strangesoft.net/openal.html
License: LGPL 2
License Website: http://www.gnu.org/licenses/licenses.html#LGPL
License File: license_gnu_lgpl_2.txt
Location in QB64 distribution: internal/c/parts/audio/out/
Software/Library Name: FreeGLUT Software/Library Name: FreeGLUT
Website: http://freeglut.sourceforge.net/ Website: http://freeglut.sourceforge.net/
License: LGPL (note: website states LGPL, license file is not a copy of GNU LGPL) License: LGPL (note: website states LGPL, license file is not a copy of GNU LGPL)

View file

@ -30095,10 +30095,6 @@ QB64_GAMEPAD_INIT();
glutPassiveMotionFunc(GLUT_PASSIVEMOTION_FUNC); glutPassiveMotionFunc(GLUT_PASSIVEMOTION_FUNC);
glutReshapeFunc(GLUT_RESHAPE_FUNC); glutReshapeFunc(GLUT_RESHAPE_FUNC);
#ifdef CORE_FREEGLUT
glutMouseWheelFunc(GLUT_MOUSEWHEEL_FUNC);
#endif
glutMainLoop(); glutMainLoop();
#endif //QB64_GLUT #endif //QB64_GLUT
@ -33573,9 +33569,6 @@ else{
glutMotionFunc(GLUT_MOTION_FUNC); glutMotionFunc(GLUT_MOTION_FUNC);
glutPassiveMotionFunc(GLUT_PASSIVEMOTION_FUNC); glutPassiveMotionFunc(GLUT_PASSIVEMOTION_FUNC);
glutReshapeFunc(GLUT_RESHAPE_FUNC); glutReshapeFunc(GLUT_RESHAPE_FUNC);
#ifdef CORE_FREEGLUT
glutMouseWheelFunc(GLUT_MOUSEWHEEL_FUNC);
#endif
#endif #endif
} }

View file

@ -1890,8 +1890,8 @@ if (src_hardware_img->source_state.PO2_fix){
if (glut_button==GLUT_LEFT_BUTTON) button=1; if (glut_button==GLUT_LEFT_BUTTON) button=1;
if (glut_button==GLUT_RIGHT_BUTTON) button=3; if (glut_button==GLUT_RIGHT_BUTTON) button=3;
if (glut_button==GLUT_MIDDLE_BUTTON) button=2; if (glut_button==GLUT_MIDDLE_BUTTON) button=2;
if (glut_button==4) button=4; if (glut_button==3) button=4;
if (glut_button==5) button=5; if (glut_button==4) button=5;
i=(last_mouse_message+1)&65535; i=(last_mouse_message+1)&65535;
if (i==current_mouse_message) current_mouse_message=(current_mouse_message+1)&65535;//if buffer full, skip oldest message if (i==current_mouse_message) current_mouse_message=(current_mouse_message+1)&65535;//if buffer full, skip oldest message
mouse_messages[i].movementx=0; mouse_messages[i].movementx=0;
@ -1941,8 +1941,8 @@ if (src_hardware_img->source_state.PO2_fix){
if (glut_button==GLUT_LEFT_BUTTON) button=1; if (glut_button==GLUT_LEFT_BUTTON) button=1;
if (glut_button==GLUT_RIGHT_BUTTON) button=3; if (glut_button==GLUT_RIGHT_BUTTON) button=3;
if (glut_button==GLUT_MIDDLE_BUTTON) button=2; if (glut_button==GLUT_MIDDLE_BUTTON) button=2;
if (glut_button==4) button=4; if (glut_button==3) button=4;
if (glut_button==5) button=5; if (glut_button==4) button=5;
i=(last_mouse_message+1)&65535; i=(last_mouse_message+1)&65535;
if (i==current_mouse_message) current_mouse_message=(current_mouse_message+1)&65535;//if buffer full, skip oldest message if (i==current_mouse_message) current_mouse_message=(current_mouse_message+1)&65535;//if buffer full, skip oldest message
mouse_messages[i].movementx=0; mouse_messages[i].movementx=0;
@ -2171,25 +2171,4 @@ if (src_hardware_img->source_state.PO2_fix){
} }
void GLUT_MOUSEWHEEL_FUNC(int wheel, int direction, int x, int y){
#ifdef QB64_GLUT
//Note: freeglut specific, limited documentation existed so the following research was done:
// qbs_print(qbs_str(wheel),NULL); <-- was always 0 [could 1 indicate horizontal wheel?]
// qbs_print(qbs_str(direction),NULL); <-- 1(up) or -1(down)
// qbs_print(qbs_str(x),NULL); <--mouse x,y co-ordinates
// qbs_print(qbs_str(y),1); <
if (direction>0){GLUT_MouseButton_Down(4,x,y); GLUT_MouseButton_Up(4,x,y);}
if (direction<0){GLUT_MouseButton_Down(5,x,y); GLUT_MouseButton_Up(5,x,y);}
#endif
}
#endif #endif

0
qb64_start_osx.command Normal file → Executable file
View file

0
setup_osx.command Normal file → Executable file
View file

View file

@ -39,12 +39,6 @@ if exist src.a del src.a
call setup_build.bat call setup_build.bat
cd ../../../../../.. cd ../../../../../..
cd internal\c\parts\user_mods\os\win
..\..\..\..\c_compiler\bin\gcc -DFREEGLUT_STATIC -I..\..\..\..\ -I..\..\include -c ..\..\src\luke_mods.cpp -o temp\luke_mods.o
..\..\..\..\c_compiler\bin\gcc -DFREEGLUT_STATIC -I..\..\..\..\ -I..\..\include -c ..\..\src\steve_mods.cpp -o temp\steve_mods.o
..\..\..\..\c_compiler\bin\ar rcs src.a temp\steve_mods.o temp\luke_mods.o
cd ..\..\..\..\..\..
echo Building 'QB64' echo Building 'QB64'
copy internal\source\*.* internal\temp\ >nul copy internal\source\*.* internal\temp\ >nul
cd internal\c cd internal\c