mirror of
https://github.com/fltk/fltk.git
synced 2026-05-31 13:55:38 +08:00
Merge pull request #10 from MatthiasWM/master
Updated macOS build documentation for 1.4
This commit is contained in:
-462
@@ -1,462 +0,0 @@
|
|||||||
README.OSX.txt - Building FLTK under Apple macOS
|
|
||||||
-------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CONTENTS
|
|
||||||
==========
|
|
||||||
|
|
||||||
1 INTRODUCTION
|
|
||||||
2 HOW TO BUILD FLTK USING GCC
|
|
||||||
2.1 Prerequisites
|
|
||||||
2.2 Downloading and Unpacking
|
|
||||||
2.3 Configuring FLTK
|
|
||||||
2.4 Building FLTK
|
|
||||||
2.5 Testing FLTK
|
|
||||||
2.6 Installing FLTK
|
|
||||||
2.7 Creating new Projects
|
|
||||||
3 HOW TO BUILD FLTK USING XCODE3
|
|
||||||
3.1 Prerequisites
|
|
||||||
3.2 Downloading and Unpacking
|
|
||||||
3.3 Configuring FLTK
|
|
||||||
3.4 Building FLTK
|
|
||||||
3.5 Testing FLTK
|
|
||||||
3.6 Uninstalling previous versions of FLTK
|
|
||||||
3.7 Installing FLTK
|
|
||||||
3.8 Installing Little Helpers
|
|
||||||
3.9 Creating new Projects
|
|
||||||
4 HOW TO BUILD FLTK USING XCODE4
|
|
||||||
4.1 Prerequisites
|
|
||||||
4.2 Downloading and Unpacking
|
|
||||||
4.3 Configuring FLTK
|
|
||||||
4.4 Building FLTK
|
|
||||||
4.5 Testing FLTK
|
|
||||||
4.6 Uninstalling previous versions of FLTK
|
|
||||||
4.7 Installing FLTK
|
|
||||||
5 MAKE AN APPLICATION LAUNCHABLE BY DROPPING FILES ON ITS ICON
|
|
||||||
6 DOCUMENT HISTORY
|
|
||||||
|
|
||||||
|
|
||||||
1 INTRODUCTION
|
|
||||||
=================
|
|
||||||
|
|
||||||
FLTK supports all macOS versions above 10.3 (Panther). See below for how to
|
|
||||||
build FLTK applications that can run on all (old or recent) macOS versions.
|
|
||||||
|
|
||||||
FLTK currently supports the following development environments on the macOS
|
|
||||||
platform:
|
|
||||||
|
|
||||||
- gcc command line tools
|
|
||||||
- Xcode 3.x and higher
|
|
||||||
|
|
||||||
CAUTION: gcc command line built libraries and Xcode created Frameworks should
|
|
||||||
not be mixed!
|
|
||||||
|
|
||||||
|
|
||||||
2 HOW TO BUILD FLTK USING GCC
|
|
||||||
================================
|
|
||||||
|
|
||||||
|
|
||||||
2.1 Prerequisites
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
In order to build FLTK from the command line, you need to install the Xcode
|
|
||||||
developer environment. It can be downloaded from the Apple Store for free.
|
|
||||||
|
|
||||||
After downloading and installing, you need to launch the Terminal. Terminal.app
|
|
||||||
is located in the "Utilities" folder inside the "Applications" folder. I like
|
|
||||||
to keep the Terminal in the Dock.
|
|
||||||
|
|
||||||
|
|
||||||
2.2 Downloading and Unpacking
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
Download FLTK from here:
|
|
||||||
|
|
||||||
https://www.fltk.org/software.php
|
|
||||||
|
|
||||||
If you are familiar with Git and like to stay current with your version,
|
|
||||||
you will find the Git access parameters at the bottom of that page.
|
|
||||||
Unpack FLTK into a convenient location. I like to have everything in my
|
|
||||||
dev directory:
|
|
||||||
|
|
||||||
cd
|
|
||||||
mkdir dev
|
|
||||||
cd dev
|
|
||||||
mv ~/Downloads/fltk-1.3.xxxx.tar.gz .
|
|
||||||
tar xvfz fltk-1.3.xxxx.tar.gz
|
|
||||||
cd fltk-1.3.xxxx
|
|
||||||
|
|
||||||
If you got FLTK via Git then you need one extra step: build the
|
|
||||||
configure script. Otherwise skip the following part marked ADVANCED:
|
|
||||||
|
|
||||||
|
|
||||||
2.3 Configuring FLTK
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
|
|
||||||
Now configure your FLTK installation: stay in your FLTK source-code directory
|
|
||||||
and type
|
|
||||||
|
|
||||||
./configure
|
|
||||||
|
|
||||||
ADVANCED: type "./configure --help" to get a complete list of optional
|
|
||||||
configurations parameters. These should be pretty self-explanatory. Some
|
|
||||||
more details can be found in README.
|
|
||||||
|
|
||||||
To create multi-architecture binaries, start "configure" with these flags:
|
|
||||||
./configure --with-archflags="-arch i386 -arch x86_64"
|
|
||||||
|
|
||||||
To create applications that can run under macOS 10.4 and above, use these flags:
|
|
||||||
./configure CXXFLAGS="-mmacosx-version-min=10.4" LDFLAGS="-mmacosx-version-min=10.4"
|
|
||||||
|
|
||||||
:END_ADVANCED
|
|
||||||
|
|
||||||
The configuration script will check your machine for the required resources
|
|
||||||
which should all have been part of your Xcode installation. Review the
|
|
||||||
Configuration Summary, maybe take some notes.
|
|
||||||
|
|
||||||
|
|
||||||
2.4 Building FLTK
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
Now this is easy. Stay in your FLTK source-code directory and type:
|
|
||||||
|
|
||||||
make
|
|
||||||
|
|
||||||
The entire FLTK toolkit including many test programs will be built for you. No
|
|
||||||
warnings should appear, but "ranlib" may complain about a few modules having no
|
|
||||||
symbols. This is normal and can safely be ignored.
|
|
||||||
|
|
||||||
|
|
||||||
2.5 Testing FLTK
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
After a successful build, you can test FLTK's capabilities:
|
|
||||||
|
|
||||||
test/demo
|
|
||||||
|
|
||||||
|
|
||||||
2.6 Installing FLTK
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
If you did not change any of the configuration settings, FLTK will be installed
|
|
||||||
in "/usr/local/include" and "/usr/local/lib" by typing
|
|
||||||
|
|
||||||
sudo make install
|
|
||||||
|
|
||||||
It is possible to install FLTK without superuser privileges by changing the
|
|
||||||
installation path to a location within the user account by adding the
|
|
||||||
"--prefix=PREFIX" parameter to the "./configure" command.
|
|
||||||
|
|
||||||
|
|
||||||
2.7 Creating new Projects
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
FLTK provides a neat script named "fltk-config" that can provide all the flags
|
|
||||||
needed to build FLTK applications using the same flags that were used to build
|
|
||||||
the library itself. Architecture flags (e.g., -arch i386) used to build the
|
|
||||||
library, though, are not provided by the fltk-config script. This allows to
|
|
||||||
build universal libraries and to produce applications of any architecture
|
|
||||||
from them. Running "fltk-config" without arguments will print a list
|
|
||||||
of options. The easiest call to compile an FLTK application from a single source
|
|
||||||
file is:
|
|
||||||
|
|
||||||
fltk-config --compile myProgram.cxx
|
|
||||||
|
|
||||||
"fltk-config" and "fluid" will be installed in "/usr/local/bin/" by default. I
|
|
||||||
recommend that you add it to the command search path.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
3 HOW TO BUILD FLTK USING XCODE3
|
|
||||||
===================================
|
|
||||||
|
|
||||||
|
|
||||||
3.1 Prerequisites
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
In order to build FLTK from within Xcode 3, you need to have the Xcode 3
|
|
||||||
developer environment on your computer. If you don't, go to: 'HOW TO BUILD
|
|
||||||
FLTK USING XCODE4'
|
|
||||||
|
|
||||||
|
|
||||||
3.2 Downloading and Unpacking
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
Download FLTK from here:
|
|
||||||
|
|
||||||
https://www.fltk.org/software.php
|
|
||||||
|
|
||||||
If you are familiar with "Git" and like to stay current with your
|
|
||||||
version, you will find the Git access parameters at the bottom of that
|
|
||||||
page. You can use the SCM system that is built into Xcode.
|
|
||||||
|
|
||||||
Unpack FLTK by double-clicking it and copy the new folder into a convenient
|
|
||||||
location. I have set up a "dev" folder in my home folder for all my projects.
|
|
||||||
|
|
||||||
|
|
||||||
3.3 Configuring FLTK
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
Launch Xcode. Open the project file in
|
|
||||||
|
|
||||||
.../fltk-1.3.xxxx/ide/Xcode4/FLTK.xcodeproj
|
|
||||||
|
|
||||||
Use the "Project" pulldown menu to change "Active Build Configuration" to
|
|
||||||
"Release". Change the "Active Architecture" as desired.
|
|
||||||
|
|
||||||
|
|
||||||
3.4 Building FLTK
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
Use the "Project" pulldown menu to set the "Active Target" to "Demo". Select
|
|
||||||
"Build" from the "Build" menu to create all libraries and test applications.
|
|
||||||
|
|
||||||
By default, the Xcode4 project builds applications that run under macOS 10.5
|
|
||||||
and above. To build applications that also run under older Mac OS versions,
|
|
||||||
select "Edit Project Settings" of the Project menu, then select the Build panel,
|
|
||||||
and modify the "macOS Deployment Target" item.
|
|
||||||
|
|
||||||
All frameworks and apps will be located in "./ide/Xcode4/build/Release/".
|
|
||||||
|
|
||||||
|
|
||||||
3.5 Testing FLTK
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
Select "Build and Run" from the "Build" menu to run the Demo program. Use "Demo"
|
|
||||||
to explore all test programs.
|
|
||||||
|
|
||||||
|
|
||||||
3.6 Uninstalling previous versions of FLTK
|
|
||||||
---------------------------------------------
|
|
||||||
|
|
||||||
Remove FLTK frameworks:
|
|
||||||
|
|
||||||
sudo rm -r /Library/Frameworks/fltk*.framework
|
|
||||||
|
|
||||||
Remove Fluid and possibly other utilities:
|
|
||||||
|
|
||||||
sudo rm -r /Developer/Applications/Utilities/FLTK/
|
|
||||||
|
|
||||||
|
|
||||||
3.7 Installing FLTK
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
When distributing FLTK applications, the FLTK frameworks should be made part of
|
|
||||||
the application package. For development however, it is very convenient to have
|
|
||||||
the Release-mode Frameworks in a standard location.
|
|
||||||
|
|
||||||
For Xcode project template use, all FLTK frameworks should be copied from
|
|
||||||
"./ide/Xcode4/build/Release/" to "/Library/Frameworks/". The FLTK header files
|
|
||||||
for all FLTK frameworks will then be at "/Library/Frameworks/fltk.framework/
|
|
||||||
Headers/". Add this path to the header search path of your projects.
|
|
||||||
|
|
||||||
sudo rm -f -r /Library/Frameworks/fltk*
|
|
||||||
sudo cp -R ide/Xcode4/build/Release/fltk*.framework /Library/Frameworks/
|
|
||||||
|
|
||||||
Many FLTK applications will use Fluid, the FLTK User Interface builder, to
|
|
||||||
generate C++ source code from .fl resource files. Add Fluid to the developer
|
|
||||||
tools:
|
|
||||||
|
|
||||||
sudo mkdir /Developer/Applications/Utilities/FLTK/
|
|
||||||
sudo rm -f -r /Developer/Applications/Utilities/FLTK/fluid.app
|
|
||||||
sudo cp -R ide/Xcode4/build/Release/fluid.app /Developer/Applications/Utilities/FLTK/
|
|
||||||
|
|
||||||
|
|
||||||
3.8 Installing Little Helpers
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
- Project Templates:
|
|
||||||
|
|
||||||
Project Templates are the quickest way to create a new FLTK application from
|
|
||||||
within Xcode. The included project builds an FLTK based Cocoa application
|
|
||||||
written in C++ with support for the Fluid UI designer, image reading, and
|
|
||||||
OpenGL. Unused FLTK sub-Frameworks can simply be removed from the project.
|
|
||||||
The template assumes that Release versions of the FLTK frameworks are installed
|
|
||||||
in /Library/Frameworks as described above.
|
|
||||||
|
|
||||||
First, we need to create the Template folder:
|
|
||||||
|
|
||||||
sudo mkdir -p /Library/Application\ Support/Developer/Shared/Xcode/Project\ Templates/
|
|
||||||
|
|
||||||
Next, we copy the project template over:
|
|
||||||
|
|
||||||
sudo cp -r ide/Xcode4/Project\ Templates/* /Library/Application\ Support/Developer/Shared/Xcode/Project\ Templates/
|
|
||||||
|
|
||||||
After restarting Xcode, the dialog for "File > New Project..." will offer an
|
|
||||||
FLTK 1.3 user template which is ready to compile.
|
|
||||||
|
|
||||||
|
|
||||||
- Fluid file handling
|
|
||||||
|
|
||||||
This section assumes that a Release version of Fluid is installed in
|
|
||||||
"/Developer/Applications/Utilities/FLTK/" as described above. It will install
|
|
||||||
a new file type which opens Fluid as an editor for files ending in ".fl".
|
|
||||||
|
|
||||||
First, we need to create the spec folder:
|
|
||||||
|
|
||||||
sudo mkdir -p /Library/Application\ Support/Developer/Shared/Xcode/Specifications/
|
|
||||||
|
|
||||||
Next, we copy the Fluid specification over:
|
|
||||||
|
|
||||||
sudo cp ide/Xcode4/fluid.pbfilespec /Library/Application\ Support/Developer/Shared/Xcode/Specifications/
|
|
||||||
|
|
||||||
Open Xcode preferences and select the File Types tab. Find the
|
|
||||||
"sourcecode.fluid" entry in "file > text > sourcecode" and set the external
|
|
||||||
editor to Fluid. When adding ".fl" files, set the File Type in the Info dialog
|
|
||||||
to "sourcecode.fluid" and Xcode will edit your file in Fluid when
|
|
||||||
double-clicking.
|
|
||||||
|
|
||||||
|
|
||||||
- More
|
|
||||||
|
|
||||||
TODO: Language Definition
|
|
||||||
TODO: Build Rules
|
|
||||||
|
|
||||||
|
|
||||||
3.9 Creating new Projects
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
If the little helpers above were installed, the menu "File > New Project..."
|
|
||||||
will pop up a dialog that offers a User Template named Fluid. Select it and
|
|
||||||
follow the instructions.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
4 HOW TO BUILD FLTK USING XCODE4
|
|
||||||
===================================
|
|
||||||
|
|
||||||
|
|
||||||
4.1 Prerequisites
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
In order to build FLTK from within Xcode 4, 5, 6, 7, or 8 you need to install
|
|
||||||
the Xcode developer environment via the Apple App Store that comes with
|
|
||||||
Lion and up. If you also want the command line version of gcc, you can use
|
|
||||||
the Download section in the Preferences dialog.
|
|
||||||
|
|
||||||
|
|
||||||
4.2 Downloading and Unpacking
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
Download FLTK from here:
|
|
||||||
|
|
||||||
https://www.fltk.org/software.php
|
|
||||||
|
|
||||||
If you are familiar with "Git" and like to stay current with your
|
|
||||||
version, you will find the Git access parameters at the bottom of that
|
|
||||||
page. You can use the SCM system that is built into Xcode.
|
|
||||||
|
|
||||||
Unpack FLTK by double-clicking it and copy the new folder into a convenient
|
|
||||||
location. I have set up a "dev" folder in my home folder for all my projects.
|
|
||||||
|
|
||||||
|
|
||||||
4.3 Configuring FLTK
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
Launch Xcode. Open the project file in
|
|
||||||
|
|
||||||
.../fltk-1.3.xxxx/ide/Xcode4/FLTK.xcodeproj
|
|
||||||
|
|
||||||
There is nothing else to configure.
|
|
||||||
|
|
||||||
|
|
||||||
4.4 Building FLTK
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
Use the "Scheme" pulldown menu to change the active target to "Demo" and
|
|
||||||
"My Mac 32-bit" or "My Mac 64-bit". Select "Build for" -> "Running"Run" from
|
|
||||||
the "Product" menu to create all libraries and test applications.
|
|
||||||
|
|
||||||
By default, the Xcode4 project builds applications that run under macOS 10.5
|
|
||||||
and above. To build applications that also run under older Mac OS versions,
|
|
||||||
modify the "macOS Deployment Target" item of the FLTK project build settings.
|
|
||||||
|
|
||||||
All frameworks and apps will be located in a private directory. Use
|
|
||||||
"Window"->"Organizer" to find the full path.
|
|
||||||
|
|
||||||
|
|
||||||
4.5 Testing FLTK
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
Select "Run" from the "Product" menu to run the Demo program. Use "Demo"
|
|
||||||
to explore all test programs.
|
|
||||||
|
|
||||||
|
|
||||||
4.6 Uninstalling previous versions of FLTK
|
|
||||||
---------------------------------------------
|
|
||||||
|
|
||||||
Remove FLTK frameworks:
|
|
||||||
|
|
||||||
sudo rm -r /Library/Frameworks/fltk*.framework
|
|
||||||
|
|
||||||
Remove Fluid and possibly other utilities:
|
|
||||||
|
|
||||||
sudo rm -r /Applications/FLTK/
|
|
||||||
|
|
||||||
|
|
||||||
4.7 Installing FLTK
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
When distributing FLTK applications, the FLTK frameworks should be made part of
|
|
||||||
the application package. For development however, it is very convenient to have
|
|
||||||
the Release-mode Frameworks in a standard location.
|
|
||||||
|
|
||||||
For Xcode project template use, all FLTK frameworks should be built using
|
|
||||||
"Build for Archiving" and then copied from
|
|
||||||
"./(Organizer->Derived Data Path)/Release/" to "/Library/Frameworks/".
|
|
||||||
The FLTK header files for all FLTK frameworks will then be at
|
|
||||||
"/Library/Frameworks/fltk.framework/Headers/". Add this path to the header
|
|
||||||
search path of your projects.
|
|
||||||
|
|
||||||
sudo rm -f -r /Library/Frameworks/fltk*
|
|
||||||
sudo cp -R (Organizer->Derived Data Path)/Release/fltk*.framework /Library/Frameworks/
|
|
||||||
|
|
||||||
Many FLTK applications will use Fluid, the FLTK User Interface builder, to
|
|
||||||
generate C++ source code from .fl resource files. Add Fluid to the developer
|
|
||||||
tools:
|
|
||||||
|
|
||||||
sudo mkdir /Applications/FLTK/
|
|
||||||
sudo rm -f -r /Applications/FLTK/fluid.app
|
|
||||||
sudo cp -R (Organizer->Derived Data Path)/Release/fluid.app /Applications/FLTK/
|
|
||||||
|
|
||||||
(TODO: 4.8 Installing Little Helpers)
|
|
||||||
(TODO: 4.9 Creating new Projects)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
5 MAKE AN APPLICATION LAUNCHABLE BY DROPPING FILES ON ITS ICON
|
|
||||||
=================================================================
|
|
||||||
- Prepare an Info.plist file for your application derived from file
|
|
||||||
test/editor-Info.plist which allows any file to be dropped
|
|
||||||
on the application icon.
|
|
||||||
You can edit this file in Xcode and change
|
|
||||||
Document types/Item 0/CFBundleTypeExtensions/Item 0
|
|
||||||
from the current "*" to the desired file extension. Use several items to
|
|
||||||
declare several extensions.
|
|
||||||
|
|
||||||
- Call fl_open_callback() at the beginning of your main() function that sets
|
|
||||||
what function will be called when a file is dropped on the application icon.
|
|
||||||
|
|
||||||
- In Xcode, set the "Info.plist File" build setting of your target application
|
|
||||||
to the Info.plist file you have prepared.
|
|
||||||
|
|
||||||
- Rebuild your application.
|
|
||||||
|
|
||||||
|
|
||||||
6 DOCUMENT HISTORY
|
|
||||||
=====================
|
|
||||||
|
|
||||||
Oct 29 2010 - matt: removed warnings
|
|
||||||
Oct 24 2010 - matt: restructured entire document and verified instructions
|
|
||||||
Dec 19 2010 - Manolo: corrected typos
|
|
||||||
Dec 29 2010 - Manolo: removed reference to AudioToolbox.framework that's no longer needed
|
|
||||||
Feb 24 2011 - Manolo: architecture flags are not propagated to the fltk-config script.
|
|
||||||
Apr 17 2012 - matt: added Xcode4 documentation
|
|
||||||
Nov 13 2012 - Manolo: added "MAKE AN APPLICATION LAUNCHABLE BY DROPPING FILES ON ITS ICON"
|
|
||||||
Apr 28 2014 - Manolo: how to build programs that run on various Mac OS X versions
|
|
||||||
Mar 18 2015 - Manolo: removed uses of the Xcode3 project
|
|
||||||
Apr 01 2016 - AlbrechtS: corrected typo, formatted most line breaks < 80 columns
|
|
||||||
Dec 04 2018 - AlbrechtS: fix typo (lowercase fluid.app) for case sensitive macOS
|
|
||||||
+516
File diff suppressed because it is too large
Load Diff
@@ -255,9 +255,8 @@ extern "C" {
|
|||||||
|
|
||||||
static void jpeg_mem_src(j_decompress_ptr cinfo, const unsigned char *data)
|
static void jpeg_mem_src(j_decompress_ptr cinfo, const unsigned char *data)
|
||||||
{
|
{
|
||||||
my_src_ptr src;
|
my_src_ptr src = (my_source_mgr*)malloc(sizeof(my_source_mgr));
|
||||||
cinfo->src = (struct jpeg_source_mgr *)malloc(sizeof(my_source_mgr));
|
cinfo->src = &(src->pub);
|
||||||
src = (my_src_ptr)cinfo->src;
|
|
||||||
src->pub.init_source = init_source;
|
src->pub.init_source = init_source;
|
||||||
src->pub.fill_input_buffer = fill_input_buffer;
|
src->pub.fill_input_buffer = fill_input_buffer;
|
||||||
src->pub.skip_input_data = skip_input_data;
|
src->pub.skip_input_data = skip_input_data;
|
||||||
|
|||||||
+1
-1
@@ -176,7 +176,7 @@ int Fl_Menu_Item::insert(
|
|||||||
if (m->flags&FL_SUBMENU && !compare(item, m->text)) break;
|
if (m->flags&FL_SUBMENU && !compare(item, m->text)) break;
|
||||||
|
|
||||||
if (!m->text) { /* create a new menu */
|
if (!m->text) { /* create a new menu */
|
||||||
int n = (index==-1) ? (int) (m-array) : index;
|
int n = (int)(m-array); /* index is not used if label contains a path */
|
||||||
array = array_insert(array, msize, n, item, FL_SUBMENU|flags1);
|
array = array_insert(array, msize, n, item, FL_SUBMENU|flags1);
|
||||||
msize++;
|
msize++;
|
||||||
array = array_insert(array, msize, n+1, 0, 0);
|
array = array_insert(array, msize, n+1, 0, 0);
|
||||||
|
|||||||
+16
-18
@@ -97,26 +97,24 @@ void gl_remove_displaylist_fonts()
|
|||||||
|
|
||||||
for (int j = 0 ; j < FL_FREE_FONT ; ++j)
|
for (int j = 0 ; j < FL_FREE_FONT ; ++j)
|
||||||
{
|
{
|
||||||
Fl_Font_Descriptor* past = 0;
|
Fl_Font_Descriptor *prevDesc = 0L, *nextDesc = 0L;
|
||||||
Fl_Font_Descriptor** s_first = Fl_Gl_Window_Driver::global()->fontnum_to_fontdescriptor(j);
|
Fl_Font_Descriptor *&firstDesc = *Fl_Gl_Window_Driver::global()->fontnum_to_fontdescriptor(j);
|
||||||
Fl_Font_Descriptor* f = *s_first;
|
for (Fl_Font_Descriptor *desc = firstDesc; desc; desc = nextDesc)
|
||||||
while (f != 0) {
|
{
|
||||||
if(f->listbase) {
|
nextDesc = desc->next;
|
||||||
if(f == *s_first) {
|
if(desc->listbase) {
|
||||||
*s_first = f->next;
|
// remove descriptor from a single-linked list
|
||||||
}
|
if(desc == firstDesc) {
|
||||||
else {
|
firstDesc = desc->next;
|
||||||
past->next = f->next;
|
} else if (prevDesc) {
|
||||||
|
// prevDesc should not be NULL, but this test will make static analysis shut up
|
||||||
|
prevDesc->next = desc->next;
|
||||||
}
|
}
|
||||||
// It would be nice if this next line was in a destructor somewhere
|
// It would be nice if this next line was in a destructor somewhere
|
||||||
glDeleteLists(f->listbase, Fl_Gl_Window_Driver::global()->genlistsize());
|
glDeleteLists(desc->listbase, Fl_Gl_Window_Driver::global()->genlistsize());
|
||||||
Fl_Font_Descriptor* tmp = f;
|
delete desc;
|
||||||
f = f->next;
|
} else {
|
||||||
delete tmp;
|
prevDesc = desc;
|
||||||
}
|
|
||||||
else {
|
|
||||||
past = f;
|
|
||||||
f = f->next;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -771,7 +771,7 @@ int BlockWindow::handle(int event) {
|
|||||||
b = 0;
|
b = 0;
|
||||||
|
|
||||||
for (j = 0, c = columns_; !count && j < num_columns_; j ++, c ++)
|
for (j = 0, c = columns_; !count && j < num_columns_; j ++, c ++)
|
||||||
for (k = 0, b = c->blocks; !count && k < c->num_blocks; k ++, b ++)
|
for (k = 0, b = c->blocks; k < c->num_blocks; k ++, b ++)
|
||||||
if (mx >= c->x && mx < (c->x + BLOCK_SIZE) &&
|
if (mx >= c->x && mx < (c->x + BLOCK_SIZE) &&
|
||||||
my >= b->y && my < (b->y + BLOCK_SIZE)) {
|
my >= b->y && my < (b->y + BLOCK_SIZE)) {
|
||||||
if (b->bomb) count = bomb(b->color);
|
if (b->bomb) count = bomb(b->color);
|
||||||
|
|||||||
Reference in New Issue
Block a user