Merge all changes from trunk in CPCMode5 branch.
git-svn-id: svn://pulkomandy.tk/GrafX2/branches/cpcmode5@1809 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
commit
706049a2d9
@ -184,3 +184,67 @@ Lua:
|
||||
Copy liblua.a to c:\msys\mingw\lib
|
||||
Copy lua51.dll to c:\msys\mingw\bin
|
||||
|
||||
== Atari TOS machines ==
|
||||
The Atari build is very similar to the Linux one. The build might work on native machine with gcc 4.3> compiler,
|
||||
but it wasn't tested. You can also build binary for Coldfire based machines(e.g. Firebee) by
|
||||
replacing '-m68020-60' in makefile to '-mcpu=5475'.
|
||||
|
||||
Preferable way is to build GRAFX2 with use of cross compiler, you can get one from Vincent Riviere site:
|
||||
(URL: http://vincent.riviere.free.fr/soft/m68k-atari-mint). There are versions for win32 (Cygwin) and
|
||||
debian packages for latest Ubuntu (32/64bit).
|
||||
|
||||
Before compilation you have to build all the needed libraries mentioned in requirements.
|
||||
|
||||
To compile a Atari TOS executable, type in
|
||||
make ATARICROSS=1 prefix=/usr/m68k-atari-mint
|
||||
You can also add other options like NOTTF,NOLUA,NOLAYERS etc. to enable/disable program features..
|
||||
|
||||
If you don't know how build libraries here's some hints. Please note that prefix path in examples below is valid only under Linux,
|
||||
in case of Cygwin the path will be '/opt/m68k-atari-mint'. There will be no prefix when building on native machine.
|
||||
You have to omit 'sudo' under Cygwin and native build. Stick to this order and you will be fine ;> ...
|
||||
The versions of libraries were tested, you can also try newer versions. As I mentioned earlier, replace '-m68020-60' with '-mcpu=5475'
|
||||
if you want to target Coldfire machines.
|
||||
|
||||
libpng [optional](for png reading in SDL_image):
|
||||
------------------------------------------------
|
||||
note: you will need libzip too
|
||||
libpng 1.2.44
|
||||
./configure --prefix=/usr/m68k-atari-mint --disable-shared --enable-static --host=m68k-atari-mint CFLAGS="-m68020-60 -O2 -fomit-frame-pointer"
|
||||
sudo make install
|
||||
or
|
||||
libpng 1.4.44
|
||||
./configure --prefix=/usr/m68k-atari-mint --disable-shared --enable-static --host=m68k-atari-mint CFLAGS="-m68020-60 -O2 -fomit-frame-pointer -DPNG_NO_SETJMP"
|
||||
sudo make install
|
||||
|
||||
libjpeg, libtiff [optional] (for jpeg/tiff support in SDL_image)
|
||||
----------------------------------------------------------------
|
||||
./configure --prefix=/usr/m68k-atari-mint --disable-shared --enable-static --host=m68k-atari-mint CFLAGS="-m68020-60 -O2 -fomit-frame-pointer"
|
||||
sudo make install
|
||||
|
||||
freetype 2.4.4 [optional] (for TTF fonts support, required by SDL_ttf)
|
||||
----------------------------------------------------------------------
|
||||
./configure --prefix=/usr/m68k-atari-mint --disable-shared --enable-static --host=m68k-atari-mint CFLAGS="-m68020-60 -O2 -fomit-frame-pointer"
|
||||
sudo make install
|
||||
|
||||
lua 5.0.4 [optional] (for LUA scripting support)
|
||||
------------------------------------------------
|
||||
Here you have to customize makefiles, add prefixes, platform has to be set as generic.
|
||||
|
||||
SDL 1.2 [mandatory]
|
||||
--------------------
|
||||
note: best is to grab it directly from Mercurial repository
|
||||
./configure --prefix=/usr/m68k-atari-mint --disable-shared --enable-static --host=m68k-atari-mint --disable-video-opengl --disable-shared --enable-static --disable-threads CFLAGS="-m68020-60 -O2 -fomit-frame-pointer"
|
||||
sudo make install
|
||||
|
||||
SDL_ttf [optional] (for ttf fonts support, depends on SDL and freetype)
|
||||
-------------------------------------------
|
||||
./configure --prefix=/usr/m68k-atari-mint --disable-shared --enable-static --host=m68k-atari-mint --disable-shared --enable-static --with-sdl-prefix=/usr/m68k-atari-mint --with-freetype-prefix=/usr/m68k-atari-mint CFLAGS=" -m68020-60 -O2 -fomit-frame-pointer"
|
||||
sudo make install
|
||||
|
||||
SDL_image 1.2.10 [mandatory]
|
||||
----------------------------
|
||||
./configure --prefix=/usr/m68k-atari-mint --disable-shared --enable-static --host=m68k-atari-mint --disable-shared --enable-static --with-sdl-prefix=/usr/m68k-atari-mint CFLAGS="-DHAVE_OPENGL=0 -m68020-60 -O2 -fomit-frame-pointer"
|
||||
sudo make install
|
||||
|
||||
And that's it! :)
|
||||
|
||||
|
||||
BIN
src/.DS_Store
vendored
BIN
src/.DS_Store
vendored
Binary file not shown.
119
src/Makefile
119
src/Makefile
@ -50,8 +50,8 @@ ifdef COMSPEC
|
||||
RMDIR = rmdir --ignore-fail-on-non-empty
|
||||
CP = cp
|
||||
BIN = ../bin/grafx2.exe
|
||||
COPT = -W -Wall -Wdeclaration-after-statement -O$(OPTIM) -g -ggdb `sdl-config --cflags` $(TTFCOPT) $(JOYCOPT) $(VKEYCOPT) $(LUACOPT) $(LAYERCOPT)
|
||||
LOPT = `sdl-config --libs` -lSDL_image $(TTFLOPT) -lpng14 $(LUALOPT)
|
||||
COPT = -W -Wall -Wdeclaration-after-statement -O$(OPTIM) -g -ggdb $(shell sdl-config --cflags) $(TTFCOPT) $(JOYCOPT) $(VKEYCOPT) $(LUACOPT) $(LAYERCOPT)
|
||||
LOPT = $(shell sdl-config --libs) -lSDL_image $(TTFLOPT) -lpng14 $(LUALOPT)
|
||||
LUALOPT = -llua
|
||||
CC = gcc
|
||||
OBJDIR = ../obj/win32
|
||||
@ -74,8 +74,8 @@ else
|
||||
RMDIR = rmdir --ignore-fail-on-non-empty
|
||||
CP = cp
|
||||
BIN = ../bin/grafx2
|
||||
COPT = -Wall -c -gstabs `sdl-config --cflags` $(TTFCOPT)
|
||||
LOPT = `sdl-config --libs` -lSDL_image -lpng -ljpeg -lz $(TTFLOPT) -lft2
|
||||
COPT = -Wall -c -gstabs $(shell sdl-config --cflags) $(TTFCOPT)
|
||||
LOPT = $(shell sdl-config --libs) -lSDL_image -lpng -ljpeg -lz $(TTFLOPT) -lft2
|
||||
CC = gcc
|
||||
OBJDIR = ../obj/amiga
|
||||
ZIP = lha
|
||||
@ -100,8 +100,8 @@ else
|
||||
SDLCOPT = $(MACOSX_ARCH) -I$(FWDIR)/SDL.framework/Headers -I$(FWDIR)/SDL_image.framework/Headers -I$(FWDIR)/SDL_ttf.framework/Headers -D_THREAD_SAFE
|
||||
#-framework SDL_ttf
|
||||
SDLLOPT = -isysroot $(MACOSX_SYSROOT) $(MACOSX_ARCH) -L/usr/lib -framework SDL -framework SDL_image -framework Cocoa -framework Carbon -framework OpenGL
|
||||
COPT = -D_DARWIN_C_SOURCE -D__macosx__ -D__linux__ -W -Wall -Wdeclaration-after-statement -O$(OPTIM) -std=c99 -c -g $(LUACOPT) $(SDLCOPT) $(TTFCOPT) -I/usr/X11/include
|
||||
LOPT = $(SDLLOPT) -llua -lpng -lz
|
||||
COPT = -D_DARWIN_C_SOURCE -D__macosx__ -D__linux__ -W -Wall -Wdeclaration-after-statement -O$(OPTIM) -std=c99 -c -g $(LUACOPT) $(shell sdlCOPT) $(TTFCOPT) -I/usr/X11/include
|
||||
LOPT = $(shell sdlLOPT) -llua -lpng -lz
|
||||
# Use gcc for compiling. Use ncc to build a callgraph and analyze the code.
|
||||
CC = gcc
|
||||
#CC = nccgen -ncgcc -ncld -ncfabs
|
||||
@ -119,8 +119,8 @@ else
|
||||
RMDIR = rmdir --ignore-fail-on-non-empty
|
||||
CP = cp
|
||||
BIN = ../bin/grafx2
|
||||
COPT = -Wall -g `sdl-config --cflags` $(TTFCOPT)
|
||||
LOPT = -lSDL_image `sdl-config --libs` -lpng -ljpeg -lz $(TTFLOPT) -lfreetype2shared
|
||||
COPT = -Wall -g $(shell sdl-config --cflags) $(TTFCOPT)
|
||||
LOPT = -lSDL_image $(shell sdl-config --libs) -lpng -ljpeg -lz $(TTFLOPT) -lfreetype2shared
|
||||
CC = gcc
|
||||
OBJDIR = ../obj/aros
|
||||
STRIP = strip --strip-unneeded --remove-section .comment
|
||||
@ -135,8 +135,8 @@ else
|
||||
RMDIR = rmdir --ignore-fail-on-non-empty
|
||||
CP = cp
|
||||
BIN = ../bin/grafx2
|
||||
COPT = -Wall -gstabs -c `sdl-config --cflags` $(TTFCOPT)
|
||||
LOPT = -lSDL_image `sdl-config --libs` -lpng -ljpeg -lz $(TTFLOPT)
|
||||
COPT = -Wall -gstabs -c $(shell sdl-config --cflags) $(TTFCOPT)
|
||||
LOPT = -lSDL_image $(shell sdl-config --libs) -lpng -ljpeg -lz $(TTFLOPT)
|
||||
CC = gcc
|
||||
OBJDIR = ../obj/morphos
|
||||
ZIP = lha
|
||||
@ -151,8 +151,8 @@ else
|
||||
RMDIR = rmdir --ignore-fail-on-non-empty
|
||||
CP = cp
|
||||
BIN = ../bin/grafx2
|
||||
COPT = -W -Wall -c -g `sdl-config --cflags` $(TTFCOPT) -I/boot/home/config/include
|
||||
LOPT = `sdl-config --libs` -lSDL_image -lpng -ljpeg -lz $(TTFLOPT)
|
||||
COPT = -W -Wall -c -g $(shell sdl-config --cflags) $(TTFCOPT) -I/boot/home/config/include
|
||||
LOPT = $(shell sdl-config --libs) -lSDL_image -lpng -ljpeg -lz $(TTFLOPT)
|
||||
CC = gcc
|
||||
OBJDIR = ../obj/beos
|
||||
ZIP = zip
|
||||
@ -172,8 +172,8 @@ else
|
||||
LUACOPT = -D__ENABLE_LUA__
|
||||
LUALOPT = -llua
|
||||
endif
|
||||
COPT = -W -Wall -c -g `sdl-config --cflags` $(TTFCOPT) -I/boot/common/include $(LUACOPT)
|
||||
LOPT = `sdl-config --libs` -lSDL_image -lpng -ljpeg -lz $(TTFLOPT) -lfreetype -lbe $(LUALOPT)
|
||||
COPT = -W -Wall -c -g $(shell sdl-config --cflags) $(TTFCOPT) -I/boot/common/include $(LUACOPT)
|
||||
LOPT = $(shell sdl-config --libs) -lSDL_image -lpng -ljpeg -lz $(TTFLOPT) -lfreetype -lbe $(LUALOPT)
|
||||
CC = gcc
|
||||
OBJDIR = ../obj/haiku
|
||||
ZIP = zip
|
||||
@ -186,8 +186,8 @@ else
|
||||
RMDIR = rmdir --ignore-fail-on-non-empty
|
||||
CP = cp
|
||||
BIN = ../bin/grafx2
|
||||
COPT = -W -Wall -Wdeclaration-after-statement -c -g `sdl-config --cflags` $(TTFCOPT)
|
||||
LOPT = `sdl-config --libs` -lSDL_image -lpng -ljpeg -lz $(TTFLOPT)
|
||||
COPT = -W -Wall -Wdeclaration-after-statement -c -g $(shell sdl-config --cflags) $(TTFCOPT)
|
||||
LOPT = $(shell sdl-config --libs) -lSDL_image -lpng -ljpeg -lz $(TTFLOPT)
|
||||
CC = gcc
|
||||
OBJDIR = ../obj/skyos
|
||||
ZIP = zip
|
||||
@ -202,13 +202,30 @@ else
|
||||
ZIP = zip
|
||||
PLATFORMFILES = gfx2.png
|
||||
BIN = ../bin/grafx2
|
||||
COPT = -W -Wall -std=c99 -c -g -gstabs -D__TRU64__ `sdl-config --cflags` $(TTFCOPT) $(LUACOPT)
|
||||
LOPT = `sdl-config --libs` -lSDL_image $(TTFLOPT) -lpng $(LUALOPT) -lm
|
||||
COPT = -W -Wall -std=c99 -c -g -gstabs -D__TRU64__ $(shell sdl-config --cflags) $(TTFCOPT) $(LUACOPT)
|
||||
LOPT = $(shell sdl-config --libs) -lSDL_image $(TTFLOPT) -lpng $(LUALOPT) -lm
|
||||
OBJDIR = ../obj/unix
|
||||
X11LOPT = -lX11
|
||||
CC = gcc
|
||||
else
|
||||
|
||||
ifeq ($(PLATFORM),FreeMiNT) #10
|
||||
#Atari FreeMiNT/TOS specific
|
||||
DELCOMMAND = rm -rf
|
||||
MKDIR = mkdir -p
|
||||
RMDIR = rmdir
|
||||
CP = cp
|
||||
ZIP = zip
|
||||
PLATFORMFILES = gfx2.png
|
||||
CC = gcc
|
||||
BIN = ../bin/grafx2.ttp
|
||||
LUALOPT = -llua
|
||||
OBJDIR = ../obj/m68k-atari-mint
|
||||
PLATFORM = m68k-atari-mint
|
||||
STRIP = strip -s
|
||||
X11LOPT =
|
||||
COPT = -W -Wall -m68020-60 -fomit-frame-pointer -pedantic -std=c99 -Wdeclaration-after-statement -D__MINT__ -DNO_INLINE_MATH -O$(OPTIM) -c -I$(prefix)/include `$(prefix)/bin/libpng12-config --cflags` `$(prefix)/bin/sdl-config --cflags` $(JOYCOPT) $(LAYERCOPT) $(LUACOPT)
|
||||
LOPT = -static -m68020-60 -lSDL_image `$(prefix)/bin/sdl-config --libs` -L$(prefix)/lib -ltiff -ljpeg `$(prefix)/bin/libpng12-config --libs` -lz -lm $(TTFLOPT) -lfreetype $(LUALOPT) $(LAYERLOPT)
|
||||
else
|
||||
# Finally, the default rules that work fine for most unix/gcc systems, linux and freebsd are tested.
|
||||
# Linux and FreeBSD specific (default rules)
|
||||
DELCOMMAND = rm -rf
|
||||
@ -232,8 +249,8 @@ else
|
||||
#cross compile a Win32 executable
|
||||
CC = i586-mingw32msvc-gcc
|
||||
BIN = ../bin/grafx2.exe
|
||||
COPT = -W -Wall -Wdeclaration-after-statement -O$(OPTIM) -g -ggdb -Dmain=SDL_main `/usr/local/cross-tools/i386-mingw32/bin/sdl-config --cflags` $(TTFCOPT)
|
||||
LOPT = -mwindows -lmingw32 -lSDLmain -lSDL -lshlwapi `/usr/local/cross-tools/i386-mingw32/bin/sdl-config --libs` -lSDL_image $(TTFLOPT)
|
||||
COPT = -W -Wall -Wdeclaration-after-statement -O$(OPTIM) -g -ggdb -Dmain=SDL_main $(shell /usr/local/cross-tools/i386-mingw32/bin/sdl-config --cflags) $(TTFCOPT)
|
||||
LOPT = -mwindows -lmingw32 -lSDLmain -lSDL -lshlwapi $(shell /usr/local/cross-tools/i386-mingw32/bin/sdl-config --libs) -lSDL_image $(TTFLOPT)
|
||||
OBJDIR = ../obj/win32
|
||||
PLATFORM = win32
|
||||
else
|
||||
@ -266,13 +283,13 @@ else
|
||||
#cross compile an exec for atari TOS/MiNT machine
|
||||
CC = m68k-atari-mint-gcc
|
||||
BIN = ../bin/grafx2.ttp
|
||||
LUALOPT = -llua
|
||||
LUALOPT = -llua
|
||||
OBJDIR = ../obj/m68k-atari-mint
|
||||
PLATFORM = m68k-atari-mint
|
||||
STRIP = m68k-atari-mint-strip -s
|
||||
X11LOPT =
|
||||
COPT = -W -Wall -m68020-60 -fomit-frame-pointer -pedantic -std=c99 -Wdeclaration-after-statement -D__MINT__ -DNO_INLINE_MATH -O$(OPTIM) -c -I$(prefix)/include `$(prefix)/bin/libpng12-config --cflags` `$(prefix)/bin/sdl-config --cflags` $() $(JOYCOPT) $(LAYERCOPT) $(LUACOPT)
|
||||
LOPT = -static -m68020-60 -lSDL_image `$(prefix)/bin/sdl-config --libs` -L$(prefix)/lib -ltiff -ljpeg `$(prefix)/bin/libpng12-config --libs` -lz -lm $(TTFLOPT) -lfreetype $(LUALOPT) $(LAYERLOPT)
|
||||
X11LOPT =
|
||||
COPT = -W -Wall -m68020-60 -fomit-frame-pointer -std=c99 -Wdeclaration-after-statement -D__MINT__ -ffast-math -O$(OPTIM) -c -I$(prefix)/include `$(prefix)/bin/libpng12-config --cflags` `$(prefix)/bin/sdl-config --cflags` $(JOYCOPT) $(LAYERCOPT) $(LUACOPT)
|
||||
LOPT = -static -m68020-60 -lSDL_image `$(prefix)/bin/sdl-config --libs` -L$(prefix)/lib -ltiff -ljpeg `$(prefix)/bin/libpng12-config --libs` -lz -lm $(TTFLOPT) -lfreetype $(LUALOPT) -lm $(LAYERLOPT) -Wl,--stack,8k
|
||||
else
|
||||
|
||||
# Compiles a regular linux executable for the native platform
|
||||
@ -297,6 +314,7 @@ else
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
### BUILD SETTINGS are set according to vars set in the platform selection,
|
||||
@ -373,11 +391,11 @@ OBJ = $(OBJDIR)/main.o $(OBJDIR)/init.o $(OBJDIR)/graph.o $(OBJDIR)/sdlscreen.o
|
||||
|
||||
SKIN_FILES = ../share/grafx2/skins/skin_classic.png ../share/grafx2/skins/skin_modern.png ../share/grafx2/skins/skin_DPaint.png ../share/grafx2/skins/font_Classic.png ../share/grafx2/skins/font_Fun.png ../share/grafx2/skins/font_Fairlight.png ../share/grafx2/skins/font_Melon.png ../share/grafx2/skins/font_DPaint.png ../share/grafx2/skins/skin_scenish.png ../share/grafx2/skins/font_Seen.png ../share/grafx2/skins/skin_Aurora.png
|
||||
|
||||
SCRIPT_FILES = ../share/grafx2/scripts/samples_2.3/brush/ApplyColor.lua ../share/grafx2/scripts/samples_2.3/brush/Fisheye.lua ../share/grafx2/scripts/samples_2.3/brush/GrayscaleAvg.lua ../share/grafx2/scripts/samples_2.3/brush/GrayscaleDesat.lua ../share/grafx2/scripts/samples_2.3/brush/Halfsmooth.lua ../share/grafx2/scripts/samples_2.3/brush/Waves.lua ../share/grafx2/scripts/samples_2.3/demo/3DPalette.lua ../share/grafx2/scripts/samples_2.3/demo/Ellipse.lua ../share/grafx2/scripts/samples_2.3/demo/FlipPicture.lua \
|
||||
../share/grafx2/scripts/samples_2.3/demo/SierpinskyCarpet.lua ../share/grafx2/scripts/samples_2.3/demo/SierpinskyTriangle.lua ../share/grafx2/scripts/samples_2.3/demo/Spritesheet.lua ../share/grafx2/scripts/samples_2.3/demo/brush/Amigaball.lua ../share/grafx2/scripts/samples_2.3/demo/brush/ColorSphere.lua ../share/grafx2/scripts/samples_2.3/demo/brush/FindAA.lua ../share/grafx2/scripts/samples_2.3/demo/brush/Mandelbrot.lua ../share/grafx2/scripts/samples_2.3/libs/dawnbringer_lib.lua ../share/grafx2/scripts/samples_2.3/libs/memory.lua \
|
||||
../share/grafx2/scripts/samples_2.3/palette/Desaturate.lua ../share/grafx2/scripts/samples_2.3/palette/ExpandColors.lua ../share/grafx2/scripts/samples_2.3/palette/FillColorCube.lua ../share/grafx2/scripts/samples_2.3/palette/InvertedRGB.lua ../share/grafx2/scripts/samples_2.3/palette/Set3bit.lua ../share/grafx2/scripts/samples_2.3/palette/Set6bit.lua ../share/grafx2/scripts/samples_2.3/palette/SetC64Palette.lua ../share/grafx2/scripts/samples_2.3/palette/ShiftHue.lua ../share/grafx2/scripts/samples_2.3/picture/CellColourReducer.lua \
|
||||
../share/grafx2/scripts/samples_2.3/picture/DrawGridIsometric.lua ../share/grafx2/scripts/samples_2.3/picture/DrawgridOrthogonal_Index.lua ../share/grafx2/scripts/samples_2.3/picture/DrawGridOrthogonal_RGB.lua ../share/grafx2/scripts/samples_2.3/picture/GlassGridFilter.lua ../share/grafx2/scripts/samples_2.3/picture/PaletteToPicture.lua ../share/grafx2/scripts/samples_2.3/picture/Pic2isometric.lua ../share/grafx2/scripts/samples_2.3/picture/Rainbow-Dark2Bright.lua ../share/grafx2/scripts/samples_2.3/picture/RemapImage2RGB.lua \
|
||||
../share/grafx2/scripts/samples_2.3/picture/RemapImage2RGB_ed.lua ../share/grafx2/scripts/samples_2.3/picture/RemapImageTo3bitPal.lua ../share/grafx2/scripts/samples_2.3/picture/XBitColourXpaceFromPalette.lua
|
||||
SCRIPT_FILES = ../share/grafx2/scripts/samples_2.4/brush/ApplyColor.lua ../share/grafx2/scripts/samples_2.4/brush/Fisheye.lua ../share/grafx2/scripts/samples_2.4/brush/GrayscaleAvg.lua ../share/grafx2/scripts/samples_2.4/brush/GrayscaleDesat.lua ../share/grafx2/scripts/samples_2.4/brush/Halfsmooth.lua ../share/grafx2/scripts/samples_2.4/brush/Waves.lua ../share/grafx2/scripts/samples_2.4/demo/3DPalette.lua ../share/grafx2/scripts/samples_2.4/demo/Ellipse.lua ../share/grafx2/scripts/samples_2.4/demo/FlipPicture.lua \
|
||||
../share/grafx2/scripts/samples_2.4/demo/SierpinskyCarpet.lua ../share/grafx2/scripts/samples_2.4/demo/SierpinskyTriangle.lua ../share/grafx2/scripts/samples_2.4/demo/Spritesheet.lua ../share/grafx2/scripts/samples_2.4/demo/brush/Amigaball.lua ../share/grafx2/scripts/samples_2.4/demo/brush/ColorSphere.lua ../share/grafx2/scripts/samples_2.4/demo/brush/FindAA.lua ../share/grafx2/scripts/samples_2.4/demo/brush/Mandelbrot.lua ../share/grafx2/scripts/samples_2.4/libs/dawnbringer_lib.lua ../share/grafx2/scripts/samples_2.4/libs/memory.lua \
|
||||
../share/grafx2/scripts/samples_2.4/palette/Desaturate.lua ../share/grafx2/scripts/samples_2.4/palette/ExpandColors.lua ../share/grafx2/scripts/samples_2.4/palette/FillColorCube.lua ../share/grafx2/scripts/samples_2.4/palette/InvertedRGB.lua ../share/grafx2/scripts/samples_2.4/palette/Set3bit.lua ../share/grafx2/scripts/samples_2.4/palette/Set6bit.lua ../share/grafx2/scripts/samples_2.4/palette/SetC64Palette.lua ../share/grafx2/scripts/samples_2.4/palette/ShiftHue.lua ../share/grafx2/scripts/samples_2.4/picture/CellColourReducer.lua \
|
||||
../share/grafx2/scripts/samples_2.4/picture/DrawGridIsometric.lua ../share/grafx2/scripts/samples_2.4/picture/DrawgridOrthogonal_Index.lua ../share/grafx2/scripts/samples_2.4/picture/DrawGridOrthogonal_RGB.lua ../share/grafx2/scripts/samples_2.4/picture/GlassGridFilter.lua ../share/grafx2/scripts/samples_2.4/picture/PaletteToPicture.lua ../share/grafx2/scripts/samples_2.4/picture/Pic2isometric.lua ../share/grafx2/scripts/samples_2.4/picture/Rainbow-Dark2Bright.lua ../share/grafx2/scripts/samples_2.4/picture/RemapImage2RGB.lua \
|
||||
../share/grafx2/scripts/samples_2.4/picture/RemapImage2RGB_ed.lua ../share/grafx2/scripts/samples_2.4/picture/RemapImageTo3bitPal.lua ../share/grafx2/scripts/samples_2.4/picture/XBitColourXpaceFromPalette.lua
|
||||
|
||||
FONT_FILES = ../share/grafx2/fonts/8pxfont.png ../share/grafx2/fonts/Tuffy.ttf ../share/grafx2/fonts/PF_Arma_5__.png ../share/grafx2/fonts/PF_Easta_7_.png ../share/grafx2/fonts/PF_Easta_7__.png ../share/grafx2/fonts/PF_Ronda_7__.png ../share/grafx2/fonts/PF_Tempesta_5.png ../share/grafx2/fonts/PF_Tempesta_5_.png ../share/grafx2/fonts/PF_Tempesta_5__.png ../share/grafx2/fonts/PF_Tempesta_5___.png ../share/grafx2/fonts/PF_Tempesta_7.png ../share/grafx2/fonts/PF_Tempesta_7_.png ../share/grafx2/fonts/PF_Tempesta_7__.png ../share/grafx2/fonts/PF_Tempesta_7___.png ../share/grafx2/fonts/PF_Westa_7_.png ../share/grafx2/fonts/PF_Westa_7__.png
|
||||
|
||||
@ -387,6 +405,12 @@ all : $(MACAPPEXE)
|
||||
$(MACAPPEXE) : $(BIN)
|
||||
rm -rf Grafx2.app
|
||||
mkdir -p Grafx2.app Grafx2.app/Contents Grafx2.app/Contents/Frameworks Grafx2.app/Contents/MacOS Grafx2.app/Contents/Resources Grafx2.app/Contents/Resources/scripts
|
||||
mkdir -p Grafx2.app/Contents/Resources/scripts/samples_2.4
|
||||
mkdir -p Grafx2.app/Contents/Resources/scripts/samples_2.4/brush
|
||||
mkdir -p Grafx2.app/Contents/Resources/scripts/samples_2.4/demo
|
||||
mkdir -p Grafx2.app/Contents/Resources/scripts/samples_2.4/libs
|
||||
mkdir -p Grafx2.app/Contents/Resources/scripts/samples_2.4/palette
|
||||
mkdir -p Grafx2.app/Contents/Resources/scripts/samples_2.4/picture
|
||||
echo 'APPL????' > Grafx2.app/Contents/PkgInfo
|
||||
cp ../Info.plist Grafx2.app/Contents
|
||||
cp -r Grafx2.icns Grafx2.app/Contents/Resources
|
||||
@ -394,13 +418,18 @@ $(MACAPPEXE) : $(BIN)
|
||||
cp -r ../share/grafx2/fonts Grafx2.app/Contents/Resources
|
||||
cp -r ../share/grafx2/skins Grafx2.app/Contents/Resources
|
||||
cp -r ../share/grafx2/gfx2def.ini Grafx2.app/Contents/Resources
|
||||
cp -r $(SCRIPT_FILES) Grafx2.app/Contents/Resources/scripts
|
||||
cp -r ../share/grafx2/scripts/samples_2.4/brush Grafx2.app/Contents/Resources/scripts/samples_2.4
|
||||
cp -r ../share/grafx2/scripts/samples_2.4/demo Grafx2.app/Contents/Resources/scripts/samples_2.4
|
||||
cp -r ../share/grafx2/scripts/samples_2.4/libs Grafx2.app/Contents/Resources/scripts/samples_2.4
|
||||
cp -r ../share/grafx2/scripts/samples_2.4/palette Grafx2.app/Contents/Resources/scripts/samples_2.4
|
||||
cp -r ../share/grafx2/scripts/samples_2.4/picture Grafx2.app/Contents/Resources/scripts/samples_2.4
|
||||
mkdir -p Grafx2.app/Contents/Frameworks/SDL.framework/Versions
|
||||
mkdir -p Grafx2.app/Contents/Frameworks/SDL_image.framework/Versions
|
||||
# mkdir -p Grafx2.app/Contents/Frameworks/SDL_ttf.framework/Versions
|
||||
cp -Rp $(FWDIR)/SDL.framework/Versions/A Grafx2.app/Contents/Frameworks/SDL.framework/Versions
|
||||
cp -Rp $(FWDIR)/SDL_image.framework/Versions/A Grafx2.app/Contents/Frameworks/SDL_image.framework/Versions
|
||||
# cp -Rp $(FWDIR)/SDL_ttf.framework/Versions/A Grafx2.app/Contents/Frameworks/SDL_ttf.framework/Versions
|
||||
# remove those
|
||||
rm -fr Grafx2.app/Contents/Frameworks/SDL.framework/Versions/A/Headers
|
||||
rm -fr Grafx2.app/Contents/Frameworks/SDL.framework/Versions/A/Resources
|
||||
rm -fr Grafx2.app/Contents/Frameworks/SDL_image.framework/Versions/A/Headers
|
||||
@ -483,13 +512,13 @@ install : $(BIN)
|
||||
test -d $(DESTDIR)$(datadir)/grafx2/skins || $(MKDIR) $(DESTDIR)$(datadir)/grafx2/skins
|
||||
test -d $(DESTDIR)$(datadir)/grafx2/scripts || $(MKDIR) $(DESTDIR)$(datadir)/grafx2/scripts
|
||||
test -d $(DESTDIR)$(datadir)/grafx2/scripts/libs || $(MKDIR) $(DESTDIR)$(datadir)/grafx2/scripts/libs
|
||||
test -d $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3 || $(MKDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3
|
||||
test -d $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/brush || $(MKDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/brush
|
||||
test -d $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/demo || $(MKDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/demo
|
||||
test -d $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/demo/brush || $(MKDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/demo/brush
|
||||
test -d $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/libs || $(MKDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/libs
|
||||
test -d $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/palette || $(MKDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/palette
|
||||
test -d $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/picture || $(MKDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/picture
|
||||
test -d $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4 || $(MKDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4
|
||||
test -d $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/brush || $(MKDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/brush
|
||||
test -d $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/demo || $(MKDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/demo
|
||||
test -d $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/demo/brush || $(MKDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/demo/brush
|
||||
test -d $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/libs || $(MKDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/libs
|
||||
test -d $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/palette || $(MKDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/palette
|
||||
test -d $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/picture || $(MKDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/picture
|
||||
test -d $(DESTDIR)$(datadir)/applications || $(MKDIR) $(DESTDIR)$(datadir)/applications
|
||||
test -d $(DESTDIR)$(pixmapdir) || $(MKDIR) $(DESTDIR)$(pixmapdir)
|
||||
# Copy files
|
||||
@ -515,13 +544,13 @@ uninstall :
|
||||
$(DELCOMMAND) $(SKIN_FILES:../share%=$(DESTDIR)$(datadir)%)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2/skins),$(RMDIR) $(DESTDIR)$(datadir)/grafx2/skins,)
|
||||
$(DELCOMMAND) $(SCRIPT_FILES:../share%=$(DESTDIR)$(datadir)%)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/picture),$(RMDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/picture,)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/palette),$(RMDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/palette,)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/libs),$(RMDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/libs,)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/demo/brush),$(RMDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/demo/brush,)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/demo),$(RMDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/demo,)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/brush),$(RMDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3/brush,)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3),$(RMDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.3,)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/picture),$(RMDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/picture,)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/palette),$(RMDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/palette,)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/libs),$(RMDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/libs,)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/demo/brush),$(RMDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/demo/brush,)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/demo),$(RMDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/demo,)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/brush),$(RMDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4/brush,)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4),$(RMDIR) $(DESTDIR)$(datadir)/grafx2/scripts/samples_2.4,)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2/scripts/libs),$(RMDIR) $(DESTDIR)$(datadir)/grafx2/scripts/libs,)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2/scripts),$(RMDIR) $(DESTDIR)$(datadir)/grafx2/scripts,)
|
||||
$(if $(wildcard $(DESTDIR)$(datadir)/grafx2),$(RMDIR) $(DESTDIR)$(datadir)/grafx2,)
|
||||
|
||||
110
src/brush.c
110
src/brush.c
@ -36,6 +36,10 @@
|
||||
#include "sdlscreen.h"
|
||||
#include "brush.h"
|
||||
|
||||
// Data used during brush rotation operation
|
||||
static byte * Brush_rotate_buffer;
|
||||
static int Brush_rotate_width;
|
||||
static int Brush_rotate_height;
|
||||
|
||||
// Calcul de redimensionnement du pinceau pour éviter les débordements de
|
||||
// l'écran et de l'image
|
||||
@ -1775,7 +1779,8 @@ void Interpolate_texture(int start_x,int start_y,int xt1,int yt1,
|
||||
|
||||
|
||||
|
||||
void Compute_quad_texture(int x1,int y1,int xt1,int yt1,
|
||||
void Compute_quad_texture( byte *texture, int texture_width,
|
||||
int x1,int y1,int xt1,int yt1,
|
||||
int x2,int y2,int xt2,int yt2,
|
||||
int x3,int y3,int xt3,int yt3,
|
||||
int x4,int y4,int xt4,int yt4,
|
||||
@ -1824,7 +1829,7 @@ void Compute_quad_texture(int x1,int y1,int xt1,int yt1,
|
||||
xt=Round((float)(ScanY_Xt[0][y])+(temp*(ScanY_Xt[1][y]-ScanY_Xt[0][y])));
|
||||
yt=Round((float)(ScanY_Yt[0][y])+(temp*(ScanY_Yt[1][y]-ScanY_Yt[0][y])));
|
||||
if (xt>=0 && yt>=0)
|
||||
buffer[x+(y*width)]=*(Brush_original_pixels + yt * Brush_width + xt);
|
||||
buffer[x+(y*width)]=*(texture + yt * texture_width + xt);
|
||||
}
|
||||
for (; x<width; x++)
|
||||
buffer[x+(y*width)]=Back_color;
|
||||
@ -1840,14 +1845,87 @@ void Compute_quad_texture(int x1,int y1,int xt1,int yt1,
|
||||
ScanY_Xt[0] = ScanY_Xt[1] = ScanY_Yt[0] = ScanY_Yt[1] = ScanY_X[0] = ScanY_X[1] = NULL;
|
||||
}
|
||||
|
||||
void Scale2x(byte **bitmap, int *width, int *height)
|
||||
{
|
||||
byte *new_bitmap;
|
||||
int new_width;
|
||||
int new_height;
|
||||
int x_pos, y_pos;
|
||||
|
||||
byte b,d,e,f,h;
|
||||
|
||||
new_width=(*width)*2;
|
||||
new_height=(*height)*2;
|
||||
new_bitmap=(byte *)(malloc(new_width*new_height));
|
||||
if (!new_bitmap)
|
||||
return;
|
||||
|
||||
// Algorithm from scale2x sourceforge project
|
||||
|
||||
for (y_pos=0; y_pos<*height; y_pos++)
|
||||
{
|
||||
for (x_pos=0; x_pos<*width; x_pos++)
|
||||
{
|
||||
// Check colors in pixels: (E is center)
|
||||
// A B C
|
||||
// D E F
|
||||
// G H I
|
||||
|
||||
e=*(*bitmap + y_pos* *width + x_pos);
|
||||
d = (x_pos==0) ? e : *(*bitmap + y_pos* *width + x_pos-1);
|
||||
f = (x_pos==*width-1) ? e : *(*bitmap + y_pos* *width + x_pos+1);
|
||||
b = (y_pos==0) ? e : *(*bitmap + (y_pos-1)* *width + x_pos);
|
||||
h = (y_pos==*height-1) ? e : *(*bitmap + (y_pos+1)* *width + x_pos);
|
||||
|
||||
if (b != h && d != f)
|
||||
{
|
||||
*(new_bitmap + (y_pos*2)*new_width + x_pos*2) = d == b ? d : e;
|
||||
*(new_bitmap + (y_pos*2)*new_width + x_pos*2+1) = b == f ? f : e;
|
||||
*(new_bitmap + (y_pos*2+1)*new_width + x_pos*2) = d == h ? d : e;
|
||||
*(new_bitmap + (y_pos*2+1)*new_width + x_pos*2+1) = h == f ? f : e;
|
||||
}
|
||||
else
|
||||
{
|
||||
*(new_bitmap + (y_pos*2)*new_width + x_pos*2) = e;
|
||||
*(new_bitmap + (y_pos*2)*new_width + x_pos*2+1) = e;
|
||||
*(new_bitmap + (y_pos*2+1)*new_width + x_pos*2) = e;
|
||||
*(new_bitmap + (y_pos*2+1)*new_width + x_pos*2+1) = e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*width=new_width;
|
||||
*height=new_height;
|
||||
*bitmap=new_bitmap;
|
||||
|
||||
}
|
||||
|
||||
void Begin_brush_rotation(void)
|
||||
{
|
||||
Brush_rotate_buffer=Brush_original_pixels;
|
||||
Brush_rotate_width=Brush_width;
|
||||
Brush_rotate_height=Brush_height;
|
||||
Scale2x(&Brush_rotate_buffer, &Brush_rotate_width, &Brush_rotate_height);
|
||||
Scale2x(&Brush_rotate_buffer, &Brush_rotate_width, &Brush_rotate_height);
|
||||
Scale2x(&Brush_rotate_buffer, &Brush_rotate_width, &Brush_rotate_height);
|
||||
}
|
||||
|
||||
void End_brush_rotation(void)
|
||||
{
|
||||
if (Brush_rotate_buffer && Brush_rotate_buffer != Brush_original_pixels)
|
||||
{
|
||||
free(Brush_rotate_buffer);
|
||||
Brush_rotate_buffer=NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void Rotate_brush(float angle)
|
||||
{
|
||||
byte * new_brush;
|
||||
int new_brush_width; // Width de la nouvelle brosse
|
||||
int new_brush_height; // Height de la nouvelle brosse
|
||||
|
||||
int offset=0;
|
||||
|
||||
short x1,y1,x2,y2,x3,y3,x4,y4;
|
||||
int start_x,end_x,start_y,end_y;
|
||||
int x_min,x_max,y_min,y_max;
|
||||
@ -1862,6 +1940,7 @@ void Rotate_brush(float angle)
|
||||
start_y=1-(Brush_height>>1);
|
||||
end_x=start_x+Brush_width-1;
|
||||
end_y=start_y+Brush_height-1;
|
||||
//offset = Brush_rotate_width/Brush_width-1;
|
||||
|
||||
Transform_point(start_x,start_y, cos_a,sin_a, &x1,&y1);
|
||||
Transform_point(end_x ,start_y, cos_a,sin_a, &x2,&y2);
|
||||
@ -1885,10 +1964,11 @@ void Rotate_brush(float angle)
|
||||
return;
|
||||
}
|
||||
// Et maintenant on calcule la nouvelle brosse tournée.
|
||||
Compute_quad_texture(x1,y1, 0, 0,
|
||||
x2,y2,Brush_width-1, 0,
|
||||
x3,y3, 0,Brush_height-1,
|
||||
x4,y4,Brush_width-1,Brush_height-1,
|
||||
Compute_quad_texture( Brush_rotate_buffer, Brush_rotate_width,
|
||||
x1,y1, offset, offset,
|
||||
x2,y2,Brush_rotate_width-offset-1, offset,
|
||||
x3,y3, offset,Brush_rotate_height-offset-1,
|
||||
x4,y4,Brush_rotate_width-offset-1,Brush_rotate_height-offset-1,
|
||||
new_brush,new_brush_width,new_brush_height);
|
||||
|
||||
if (Realloc_brush(new_brush_width, new_brush_height, new_brush, NULL))
|
||||
@ -1907,7 +1987,8 @@ void Rotate_brush(float angle)
|
||||
|
||||
|
||||
|
||||
void Draw_quad_texture_preview(int x1,int y1,int xt1,int yt1,
|
||||
void Draw_quad_texture_preview(byte *texture, int texture_width,
|
||||
int x1,int y1,int xt1,int yt1,
|
||||
int x2,int y2,int xt2,int yt2,
|
||||
int x3,int y3,int xt3,int yt3,
|
||||
int x4,int y4,int xt4,int yt4)
|
||||
@ -1966,7 +2047,7 @@ void Draw_quad_texture_preview(int x1,int y1,int xt1,int yt1,
|
||||
yt=Round((float)(ScanY_Yt[0][y])+(temp*(ScanY_Yt[1][y]-ScanY_Yt[0][y])));
|
||||
if (xt>=0 && yt>=0)
|
||||
{
|
||||
color=Read_pixel_from_brush(xt,yt);
|
||||
color=Brush_colormap[*(texture+xt+yt*texture_width)];
|
||||
if (color!=Back_color)
|
||||
Pixel_preview(x,y_,color);
|
||||
}
|
||||
@ -1990,6 +2071,7 @@ void Rotate_brush_preview(float angle)
|
||||
int start_x,end_x,start_y,end_y;
|
||||
float cos_a=cos(angle);
|
||||
float sin_a=sin(angle);
|
||||
int offset=0;
|
||||
|
||||
// Calcul des coordonnées des 4 coins:
|
||||
// 1 2
|
||||
@ -1999,6 +2081,7 @@ void Rotate_brush_preview(float angle)
|
||||
start_y=1-(Brush_height>>1);
|
||||
end_x=start_x+Brush_width-1;
|
||||
end_y=start_y+Brush_height-1;
|
||||
//offset = Brush_rotate_width/Brush_width-1;
|
||||
|
||||
Transform_point(start_x,start_y, cos_a,sin_a, &x1,&y1);
|
||||
Transform_point(end_x ,start_y, cos_a,sin_a, &x2,&y2);
|
||||
@ -2015,10 +2098,11 @@ void Rotate_brush_preview(float angle)
|
||||
y4+=Brush_rotation_center_Y;
|
||||
|
||||
// Et maintenant on dessine la brosse tournée.
|
||||
Draw_quad_texture_preview(x1,y1, 0, 0,
|
||||
x2,y2,Brush_width-1, 0,
|
||||
x3,y3, 0,Brush_height-1,
|
||||
x4,y4,Brush_width-1,Brush_height-1);
|
||||
Draw_quad_texture_preview(Brush_rotate_buffer, Brush_rotate_width,
|
||||
x1, y1, offset, offset,
|
||||
x2, y2, Brush_rotate_width-offset-1, offset,
|
||||
x3, y3, offset, Brush_rotate_height-offset-1,
|
||||
x4, y4, Brush_rotate_width-offset-1, Brush_rotate_height-offset-1);
|
||||
start_x=Min(Min(x1,x2),Min(x3,x4));
|
||||
end_x=Max(Max(x1,x2),Max(x3,x4));
|
||||
start_y=Min(Min(y1,y2),Min(y3,y4));
|
||||
|
||||
@ -125,5 +125,7 @@ byte Realloc_brush(word new_brush_width, word new_brush_height, byte *new_brush,
|
||||
/// Sets brush's original palette and color mapping.
|
||||
void Brush_set_palette(T_Palette *palette);
|
||||
|
||||
void Begin_brush_rotation(void);
|
||||
void End_brush_rotation(void);
|
||||
|
||||
#endif
|
||||
|
||||
@ -42,7 +42,6 @@
|
||||
#define M_PI 3.141592653589793238462643
|
||||
#endif
|
||||
|
||||
|
||||
/// Simulates clicking the "Draw" button.
|
||||
void Return_to_draw_mode(void)
|
||||
{
|
||||
@ -971,8 +970,7 @@ void Rotate_brush_1_5(void)
|
||||
{
|
||||
dx=Paintbrush_X-Brush_rotation_center_X;
|
||||
dy=Paintbrush_Y-Brush_rotation_center_Y;
|
||||
angle=acos(((float)dx)/sqrt((dx*dx)+(dy*dy)));
|
||||
if (dy>0) angle=M_2PI-angle;
|
||||
angle=M_2PI-atan2(dy,dx);
|
||||
}
|
||||
|
||||
if (Menu_is_visible)
|
||||
|
||||
@ -45,7 +45,7 @@
|
||||
#include "graph.h"
|
||||
#include "filesel.h" // Read_list_of_drives()
|
||||
#include "realpath.h"
|
||||
|
||||
#include "setup.h"
|
||||
|
||||
/// Lua scripts bound to shortcut keys.
|
||||
char * Bound_script[10];
|
||||
@ -457,30 +457,44 @@ int L_DrawCircle(lua_State* L)
|
||||
|
||||
int L_DrawDisk(lua_State* L)
|
||||
{
|
||||
int center_x, center_y, r, c;
|
||||
int center_x, center_y, diameter, c, r, even;
|
||||
long circle_limit;
|
||||
short x_pos,y_pos;
|
||||
short min_x,max_x,min_y,max_y;
|
||||
double r_float;
|
||||
|
||||
int nb_args = lua_gettop(L);
|
||||
|
||||
LUA_ARG_LIMIT(4, "drawdisk");
|
||||
LUA_ARG_NUMBER(1, "drawdisk", center_x, INT_MIN, INT_MAX);
|
||||
LUA_ARG_NUMBER(2, "drawdisk", center_y, INT_MIN, INT_MAX);
|
||||
LUA_ARG_NUMBER(3, "drawdisk", r, INT_MIN, INT_MAX);
|
||||
LUA_ARG_NUMBER(3, "drawdisk", r_float, INT_MIN, INT_MAX);
|
||||
LUA_ARG_NUMBER(4, "drawdisk", c, INT_MIN, INT_MAX);
|
||||
|
||||
circle_limit = r*r;
|
||||
if (r_float<0.0)
|
||||
return 0;
|
||||
diameter=(int)(floor(r_float*2.0+1.0));
|
||||
r=diameter/2;
|
||||
even=!(diameter&1);
|
||||
|
||||
circle_limit = Circle_squared_diameter(diameter);
|
||||
|
||||
// Compute clipping limits
|
||||
min_x=center_x-r<0 ? 0 : center_x-r;
|
||||
min_x=center_x-r+even<0 ? 0 : center_x-r+even;
|
||||
max_x=center_x+r>=Main_image_width? Main_image_width-1 : center_x+r;
|
||||
min_y=center_y-r<0 ? 0 : center_y-r;
|
||||
min_y=center_y-r+even<0 ? 0 : center_y-r+even;
|
||||
max_y=center_y+r>=Main_image_height? Main_image_height-1 : center_y+r;
|
||||
|
||||
for (y_pos=min_y;y_pos<=max_y;y_pos++)
|
||||
{
|
||||
short y=(y_pos-center_y)*2-even;
|
||||
for (x_pos=min_x;x_pos<=max_x;x_pos++)
|
||||
Pixel_in_current_screen(x_pos,y_pos,c,0);
|
||||
{
|
||||
short x=(x_pos-center_x)*2-even;
|
||||
if (x*x+y*y <= circle_limit)
|
||||
Pixel_in_current_screen(x_pos,y_pos,c,0);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -690,6 +704,22 @@ int L_MatchColor(lua_State* L)
|
||||
return 1;
|
||||
}
|
||||
|
||||
int L_MatchColor2(lua_State* L)
|
||||
{
|
||||
double r, g, b;
|
||||
int c;
|
||||
int nb_args=lua_gettop(L);
|
||||
|
||||
LUA_ARG_LIMIT (3, "matchcolor2");
|
||||
LUA_ARG_NUMBER(1, "matchcolor2", r, -DBL_MAX, DBL_MAX);
|
||||
LUA_ARG_NUMBER(2, "matchcolor2", g, -DBL_MAX, DBL_MAX);
|
||||
LUA_ARG_NUMBER(3, "matchcolor2", b, -DBL_MAX, DBL_MAX);
|
||||
|
||||
c = Best_color_perceptual(clamp_byte(r),clamp_byte(g),clamp_byte(b));
|
||||
lua_pushinteger(L, c);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int L_GetForeColor(lua_State* L)
|
||||
{
|
||||
lua_pushinteger(L, Fore_color);
|
||||
@ -1461,8 +1491,8 @@ void Run_script(const char *script_subdirectory, const char *script_filename)
|
||||
|
||||
strcpy(buf, "LUA_PATH=");
|
||||
strcat(buf, Data_directory);
|
||||
Append_path(buf+9, "scripts", NULL);
|
||||
Append_path(buf+9, "libs", NULL);
|
||||
Append_path(buf+9, SCRIPTS_SUBDIRECTORY, NULL);
|
||||
Append_path(buf+9, LUALIB_SUBDIRECTORY, NULL);
|
||||
Append_path(buf+9, "?.lua", NULL);
|
||||
putenv(buf);
|
||||
|
||||
@ -1506,6 +1536,7 @@ void Run_script(const char *script_subdirectory, const char *script_filename)
|
||||
lua_register(L,"gettranscolor",L_GetTransColor);
|
||||
|
||||
lua_register(L,"matchcolor",L_MatchColor);
|
||||
lua_register(L,"matchcolor2",L_MatchColor2);
|
||||
|
||||
// ui
|
||||
lua_register(L,"inputbox",L_InputBox);
|
||||
|
||||
@ -46,6 +46,11 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef png_jmpbuf
|
||||
# define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf)
|
||||
#endif
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "errors.h"
|
||||
@ -1102,7 +1107,7 @@ typedef struct
|
||||
|
||||
dword Size_2; // 40
|
||||
dword Width;
|
||||
dword Height;
|
||||
int32_t Height; // signed: negative means a top-down bitmap (rare)
|
||||
word Planes; // 1
|
||||
word Nb_bits; // 1,4,8 ou 24
|
||||
dword Compression;
|
||||
@ -1132,7 +1137,7 @@ void Test_BMP(T_IO_Context * context)
|
||||
&& Read_dword_le(file,&(header.Offset))
|
||||
&& Read_dword_le(file,&(header.Size_2))
|
||||
&& Read_dword_le(file,&(header.Width))
|
||||
&& Read_dword_le(file,&(header.Height))
|
||||
&& Read_dword_le(file,(dword *)&(header.Height))
|
||||
&& Read_word_le(file,&(header.Planes))
|
||||
&& Read_word_le(file,&(header.Nb_bits))
|
||||
&& Read_dword_le(file,&(header.Compression))
|
||||
@ -1209,6 +1214,7 @@ void Load_BMP(T_IO_Context * context)
|
||||
word line_size;
|
||||
byte a,b,c=0;
|
||||
long file_size;
|
||||
byte negative_height;
|
||||
|
||||
Get_full_filename(filename, context->File_name, context->File_directory);
|
||||
|
||||
@ -1225,7 +1231,7 @@ void Load_BMP(T_IO_Context * context)
|
||||
&& Read_dword_le(file,&(header.Offset))
|
||||
&& Read_dword_le(file,&(header.Size_2))
|
||||
&& Read_dword_le(file,&(header.Width))
|
||||
&& Read_dword_le(file,&(header.Height))
|
||||
&& Read_dword_le(file,(dword *)&(header.Height))
|
||||
&& Read_word_le(file,&(header.Planes))
|
||||
&& Read_word_le(file,&(header.Nb_bits))
|
||||
&& Read_dword_le(file,&(header.Compression))
|
||||
@ -1249,6 +1255,16 @@ void Load_BMP(T_IO_Context * context)
|
||||
default:
|
||||
File_error=1;
|
||||
}
|
||||
|
||||
if (header.Height < 0)
|
||||
{
|
||||
negative_height=1;
|
||||
header.Height = -header.Height;
|
||||
}
|
||||
else
|
||||
{
|
||||
negative_height=0;
|
||||
}
|
||||
|
||||
if (!File_error)
|
||||
{
|
||||
@ -1271,6 +1287,9 @@ void Load_BMP(T_IO_Context * context)
|
||||
context->Width=header.Width;
|
||||
context->Height=header.Height;
|
||||
|
||||
if (fseek(file, header.Offset, SEEK_SET))
|
||||
File_error=2;
|
||||
|
||||
switch (header.Compression)
|
||||
{
|
||||
case 0 : // Pas de compression
|
||||
@ -1283,26 +1302,29 @@ void Load_BMP(T_IO_Context * context)
|
||||
line_size=(line_size*header.Nb_bits)>>3;
|
||||
|
||||
buffer=(byte *)malloc(line_size);
|
||||
for (y_pos=context->Height-1; ((y_pos>=0) && (!File_error)); y_pos--)
|
||||
for (y_pos=0; (y_pos < context->Height && !File_error); y_pos++)
|
||||
{
|
||||
short target_y;
|
||||
target_y = negative_height ? y_pos : context->Height-1-y_pos;
|
||||
|
||||
if (Read_bytes(file,buffer,line_size))
|
||||
for (x_pos=0; x_pos<context->Width; x_pos++)
|
||||
switch (header.Nb_bits)
|
||||
{
|
||||
case 8 :
|
||||
Set_pixel(context, x_pos,y_pos,buffer[x_pos]);
|
||||
Set_pixel(context, x_pos,target_y,buffer[x_pos]);
|
||||
break;
|
||||
case 4 :
|
||||
if (x_pos & 1)
|
||||
Set_pixel(context, x_pos,y_pos,buffer[x_pos>>1] & 0xF);
|
||||
Set_pixel(context, x_pos,target_y,buffer[x_pos>>1] & 0xF);
|
||||
else
|
||||
Set_pixel(context, x_pos,y_pos,buffer[x_pos>>1] >> 4 );
|
||||
Set_pixel(context, x_pos,target_y,buffer[x_pos>>1] >> 4 );
|
||||
break;
|
||||
case 1 :
|
||||
if ( buffer[x_pos>>3] & (0x80>>(x_pos&7)) )
|
||||
Set_pixel(context, x_pos,y_pos,1);
|
||||
Set_pixel(context, x_pos,target_y,1);
|
||||
else
|
||||
Set_pixel(context, x_pos,y_pos,0);
|
||||
Set_pixel(context, x_pos,target_y,0);
|
||||
}
|
||||
else
|
||||
File_error=2;
|
||||
@ -1481,11 +1503,14 @@ void Load_BMP(T_IO_Context * context)
|
||||
line_size+=(4-x_pos);
|
||||
|
||||
buffer=(byte *)malloc(line_size);
|
||||
for (y_pos=context->Height-1; ((y_pos>=0) && (!File_error)); y_pos--)
|
||||
for (y_pos=0; (y_pos < context->Height && !File_error); y_pos++)
|
||||
{
|
||||
short target_y;
|
||||
target_y = negative_height ? y_pos : context->Height-1-y_pos;
|
||||
|
||||
if (Read_bytes(file,buffer,line_size))
|
||||
for (x_pos=0,index=0; x_pos<context->Width; x_pos++,index+=3)
|
||||
Set_pixel_24b(context, x_pos,y_pos,buffer[index+2],buffer[index+1],buffer[index+0]);
|
||||
Set_pixel_24b(context, x_pos,target_y,buffer[index+2],buffer[index+1],buffer[index+0]);
|
||||
else
|
||||
File_error=2;
|
||||
}
|
||||
@ -1495,13 +1520,15 @@ void Load_BMP(T_IO_Context * context)
|
||||
case 32:
|
||||
line_size=context->Width*4;
|
||||
buffer=(byte *)malloc(line_size);
|
||||
for (y_pos=context->Height-1; ((y_pos>=0) && (!File_error)); y_pos--)
|
||||
for (y_pos=0; (y_pos < context->Height && !File_error); y_pos++)
|
||||
{
|
||||
short target_y;
|
||||
target_y = negative_height ? y_pos : context->Height-1-y_pos;
|
||||
if (Read_bytes(file,buffer,line_size))
|
||||
for (x_pos=0; x_pos<context->Width; x_pos++)
|
||||
{
|
||||
dword pixel=*(((dword *)buffer)+x_pos);
|
||||
Set_pixel_24b(context, x_pos,y_pos,Bitmap_mask(pixel,red_mask),Bitmap_mask(pixel,green_mask),Bitmap_mask(pixel,blue_mask));
|
||||
Set_pixel_24b(context, x_pos,target_y,Bitmap_mask(pixel,red_mask),Bitmap_mask(pixel,green_mask),Bitmap_mask(pixel,blue_mask));
|
||||
}
|
||||
else
|
||||
File_error=2;
|
||||
@ -1512,13 +1539,15 @@ void Load_BMP(T_IO_Context * context)
|
||||
case 16:
|
||||
line_size=(context->Width*2) + (context->Width&1)*2;
|
||||
buffer=(byte *)malloc(line_size);
|
||||
for (y_pos=context->Height-1; ((y_pos>=0) && (!File_error)); y_pos--)
|
||||
for (y_pos=0; (y_pos < context->Height && !File_error); y_pos++)
|
||||
{
|
||||
short target_y;
|
||||
target_y = negative_height ? y_pos : context->Height-1-y_pos;
|
||||
if (Read_bytes(file,buffer,line_size))
|
||||
for (x_pos=0; x_pos<context->Width; x_pos++)
|
||||
{
|
||||
word pixel=*(((word *)buffer)+x_pos);
|
||||
Set_pixel_24b(context, x_pos,y_pos,Bitmap_mask(pixel,red_mask),Bitmap_mask(pixel,green_mask),Bitmap_mask(pixel,blue_mask));
|
||||
Set_pixel_24b(context, x_pos,target_y,Bitmap_mask(pixel,red_mask),Bitmap_mask(pixel,green_mask),Bitmap_mask(pixel,blue_mask));
|
||||
}
|
||||
else
|
||||
File_error=2;
|
||||
|
||||
@ -120,7 +120,8 @@ byte Native_filesel(byte load)
|
||||
// Check if cancel
|
||||
return CommDlgExtendedError();
|
||||
}
|
||||
#else
|
||||
#else ifndef(__linux__) // This makes no sense on X11-oriented platform. Nothing is really native there.
|
||||
#warning "EXPERIMENTAL function for native fileselector not available for this platform!"
|
||||
return 255; // fail !
|
||||
#endif
|
||||
}
|
||||
@ -437,7 +438,7 @@ void Read_list_of_files(T_Fileselector *list, byte selected_format)
|
||||
}
|
||||
|
||||
if(!bFound){
|
||||
Add_element_to_list(list, "..",1,Format_filename("/",19,1),ICON_NONE); // add if not present
|
||||
Add_element_to_list(list, "..",Format_filename("/",19,1),1,ICON_NONE); // add if not present
|
||||
list->Nb_directories ++;
|
||||
}
|
||||
|
||||
@ -1401,8 +1402,9 @@ byte Button_Load_or_Save(byte load, T_IO_Context *context)
|
||||
if (load)
|
||||
{
|
||||
#if defined(__MINT__)
|
||||
chdir(Main_current_directory);
|
||||
static char path[1024]={0};
|
||||
|
||||
chdir(Main_current_directory);
|
||||
Dgetpath(path,0);
|
||||
strcat(path,PATH_SEPARATOR);
|
||||
strcpy(Main_current_directory,path);
|
||||
|
||||
14
src/graph.c
14
src/graph.c
@ -1340,6 +1340,20 @@ void Draw_filled_circle(short center_x,short center_y,short radius,byte color)
|
||||
Update_part_of_screen(start_x,start_y,end_x+1-start_x,end_y+1-start_y);
|
||||
}
|
||||
|
||||
int Circle_squared_diameter(int diameter)
|
||||
{
|
||||
int result = diameter*diameter;
|
||||
// Trick to make some circles rounder, even though
|
||||
// mathematically incorrect.
|
||||
if (diameter==3 || diameter==9)
|
||||
return result-2;
|
||||
if (diameter==11)
|
||||
return result-6;
|
||||
if (diameter==14)
|
||||
return result-4;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// -- Tracer général d'une ellipse vide -----------------------------------
|
||||
|
||||
|
||||
@ -67,6 +67,8 @@ void Hide_empty_circle_preview (short center_x,short center_y,short radius);
|
||||
void Draw_empty_circle_general(short center_x,short center_y,short radius,byte color);
|
||||
void Draw_filled_circle (short center_x,short center_y,short radius,byte color);
|
||||
|
||||
int Circle_squared_diameter(int diameter);
|
||||
|
||||
void Draw_empty_ellipse_permanent(short center_x,short center_y,short horizontal_radius,short vertical_radius,byte color);
|
||||
void Draw_empty_ellipse_preview (short center_x,short center_y,short horizontal_radius,short vertical_radius,byte color);
|
||||
void Hide_empty_ellipse_preview (short center_x,short center_y,short horizontal_radius,short vertical_radius);
|
||||
|
||||
@ -411,6 +411,7 @@ static const T_Help_table helptable_credits[] =
|
||||
HELP_TEXT ("")
|
||||
HELP_BOLD (" AROS PORT")
|
||||
HELP_TEXT ("")
|
||||
HELP_TEXT (" Yannick")
|
||||
HELP_TEXT (" Fernando Mastandrea (masta.uy)")
|
||||
HELP_TEXT (" Markus Weiss")
|
||||
HELP_TEXT ("")
|
||||
@ -459,21 +460,22 @@ static const T_Help_table helptable_credits[] =
|
||||
HELP_TITLE(" BUGFINDERS")
|
||||
HELP_TEXT ("")
|
||||
//HELP_TEXT ("0----5----0----5----0----5----0----5----0--X")
|
||||
HELP_TEXT (" anibiqme blumunkee BDCIron ")
|
||||
HELP_TEXT (" Ced DarkDefende DawnBringer ")
|
||||
HELP_TEXT (" El Topo falenblood fanickbux ")
|
||||
HELP_TEXT (" fano fogbot121 Frost ")
|
||||
HELP_TEXT (" Grimmy Gürkan Sengün Hatch ")
|
||||
HELP_TEXT (" HoraK-FDF iLKke Iw2evk ")
|
||||
HELP_TEXT (" jackfrost128 Jamon keito ")
|
||||
HELP_TEXT (" kusma Lord Graga Lorenzo Gatti ")
|
||||
HELP_TEXT (" MagerValp maymunbeyin mind ")
|
||||
HELP_TEXT (" MooZ Pasi Kallinen the Peach ")
|
||||
HELP_TEXT (" petter PheeL Ravey1138 ")
|
||||
HELP_TEXT (" richienyhus sm4tik spratek ")
|
||||
HELP_TEXT (" Surt tape.yrm TeeEmCee ")
|
||||
HELP_TEXT (" tempest Timo Kurrpa titus^Rab ")
|
||||
HELP_TEXT (" Tobé yakumo2975 00ai99")
|
||||
HELP_TEXT (" anibiqme antdzeryn blumunkee ")
|
||||
HELP_TEXT (" BDCIron Ced DarkDefende ")
|
||||
HELP_TEXT (" DawnBringer El Topo falenblood ")
|
||||
HELP_TEXT (" fanickbux fano fogbot121 ")
|
||||
HELP_TEXT (" Frost Grimmy Gürkan Sengün ")
|
||||
HELP_TEXT (" Hatch HoraK-FDF iLKke ")
|
||||
HELP_TEXT (" Iw2evk jackfrost128 Jamon ")
|
||||
HELP_TEXT (" keito kusma Lord Graga ")
|
||||
HELP_TEXT (" Lorenzo Gatti MagerValp maymunbeyin ")
|
||||
HELP_TEXT (" mind MooZ Pasi Kallinen ")
|
||||
HELP_TEXT (" the Peach petter PheeL ")
|
||||
HELP_TEXT (" Ravey1138 richienyhus sm4tik ")
|
||||
HELP_TEXT (" spratek Surt tape.yrm ")
|
||||
HELP_TEXT (" TeeEmCee tempest Timo Kurrpa ")
|
||||
HELP_TEXT (" titus^Rab Tobé yakumo2975 ")
|
||||
HELP_TEXT (" 00ai99")
|
||||
HELP_TEXT ("")
|
||||
HELP_TEXT (" ... posted the annoying bug reports.")
|
||||
HELP_TEXT ("")
|
||||
|
||||
23
src/misc.c
23
src/misc.c
@ -738,7 +738,7 @@ void Zoom_a_line(byte* original_line, byte* zoomed_line,
|
||||
#elif defined(__macosx__) || defined(__FreeBSD__) || defined(__NetBSD__)
|
||||
#include <sys/sysctl.h>
|
||||
#elif defined(__BEOS__) || defined(__HAIKU__)
|
||||
// sysinfo not implemented
|
||||
#include <kernel/OS.h>
|
||||
#elif defined(__AROS__) || defined(__amigaos4__) || defined(__MORPHOS__) || defined(__amigaos__)
|
||||
#include <proto/exec.h>
|
||||
#elif defined(__MINT__)
|
||||
@ -754,11 +754,8 @@ void Zoom_a_line(byte* original_line, byte* zoomed_line,
|
||||
// atari have two kinds of memory
|
||||
// standard and fast ram
|
||||
void Atari_Memory_free(unsigned long *stRam,unsigned long *ttRam){
|
||||
//TODO: return STRAM/TT-RAM
|
||||
unsigned long mem=0;
|
||||
*stRam=Mxalloc(-1L,0);
|
||||
*ttRam = Mxalloc(-1L,1);
|
||||
|
||||
}
|
||||
#else
|
||||
// Indique quelle est la mémoire disponible
|
||||
@ -787,17 +784,23 @@ unsigned long Memory_free(void)
|
||||
len = sizeof(maxmem);
|
||||
sysctl(mib,2,&maxmem,&len,NULL,0);
|
||||
return maxmem;
|
||||
#elif defined(__BEOS__) || defined(__HAIKU__) || defined(__SKYOS__) || defined(__amigaos4__) || defined(__TRU64__)
|
||||
// No <sys/sysctl.h> on BeOS or Haiku
|
||||
// AvailMem is misleading on os4 (os4 caches stuff in memory that you can still allocate)
|
||||
#warning "There is missing code there for your platform ! please check and correct :)"
|
||||
return 10*1024*1024;
|
||||
#elif defined(__HAIKU__) || defined(__BEOS__)
|
||||
int pages;
|
||||
system_info systemInfo;
|
||||
get_system_info(&systemInfo);
|
||||
|
||||
pages = systemInfo.max_pages - systemInfo.used_pages;
|
||||
return pages * B_PAGE_SIZE;
|
||||
#elif defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__)
|
||||
return AvailMem(MEMF_ANY);
|
||||
#else
|
||||
#elif defined(__linux__)
|
||||
struct sysinfo info;
|
||||
sysinfo(&info);
|
||||
return info.freeram*info.mem_unit;
|
||||
#else
|
||||
// AvailMem is misleading on os4 (os4 caches stuff in memory that you can still allocate)
|
||||
#warning "There is missing code there for your platform ! please check and correct :)"
|
||||
return 10*1024*1024;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -146,8 +146,11 @@ dword Timer_start; // Heure de d
|
||||
byte New_preview_is_needed; // Booléen "Il faut relancer le chrono de preview"
|
||||
|
||||
|
||||
#if defined (__MINT__)
|
||||
void Atari_Memory_free(unsigned long *stRam,unsigned long *ttRam);
|
||||
#else
|
||||
unsigned long Memory_free(void);
|
||||
|
||||
#endif
|
||||
#define Num2str(a,b,c) sprintf(b,"%*lu",c,(long)(a))
|
||||
|
||||
#define Dec2str(a,b,c) sprintf(b,"%.*f",c,(double)(a))
|
||||
|
||||
@ -437,7 +437,7 @@ void Cluster_pack(T_Cluster * c,T_Occurrence_table * to)
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
// Optimized version : find the extremums one at a time, so we can reduce the
|
||||
// area to seek for the next one. Start at the edges of the cluster and go to
|
||||
// the center until we find a pixel.
|
||||
@ -521,7 +521,7 @@ ENDCRUSH:
|
||||
c->rmin=rmin>>16; c->rmax=rmax>>16;
|
||||
c->vmin=vmin>>8; c->vmax=vmax>>8;
|
||||
c->bmin=bmin; c->bmax=bmax;
|
||||
|
||||
|
||||
// Find the longest axis to know which way to split the cluster
|
||||
// This multiplications are supposed to improve the result, but may or may not
|
||||
// work, actually.
|
||||
|
||||
@ -49,7 +49,17 @@ Uint32 Airbrush_next_time;
|
||||
|
||||
void Start_operation_stack(word new_operation)
|
||||
{
|
||||
// This part handles things that must be done when exiting an operation.
|
||||
Brush_rotation_center_is_defined=0;
|
||||
switch(Current_operation)
|
||||
{
|
||||
case OPERATION_ROTATE_BRUSH:
|
||||
End_brush_rotation();
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// On mémorise l'opération précédente si on démarre une interruption
|
||||
switch(new_operation)
|
||||
@ -60,7 +70,12 @@ void Start_operation_stack(word new_operation)
|
||||
case OPERATION_GRAB_BRUSH:
|
||||
case OPERATION_POLYBRUSH:
|
||||
case OPERATION_STRETCH_BRUSH:
|
||||
Operation_before_interrupt=Current_operation;
|
||||
// On passe à l'operation demandée
|
||||
Current_operation=new_operation;
|
||||
break;
|
||||
case OPERATION_ROTATE_BRUSH:
|
||||
Begin_brush_rotation();
|
||||
Operation_before_interrupt=Current_operation;
|
||||
// On passe à l'operation demandée
|
||||
Current_operation=new_operation;
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
char Program_version[]="2.3";
|
||||
char Program_version[]="2.4wip";
|
||||
|
||||
|
||||
@ -945,7 +945,7 @@ int Load_INI(T_Config * conf)
|
||||
{
|
||||
// Default when empty:
|
||||
Realpath(Data_directory, conf->Scripts_directory);
|
||||
Append_path(conf->Scripts_directory, "scripts", NULL);
|
||||
Append_path(conf->Scripts_directory, SCRIPTS_SUBDIRECTORY, NULL);
|
||||
}
|
||||
|
||||
conf->Allow_multi_shortcuts=0;
|
||||
|
||||
@ -89,7 +89,6 @@ void Set_program_directory(ARG_UNUSED const char * argv0,char * program_dir)
|
||||
#elif defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__)
|
||||
strcpy(program_dir,"PROGDIR:");
|
||||
#elif defined(__MINT__)
|
||||
|
||||
static char path[1024]={0};
|
||||
char currentDrive='A';
|
||||
currentDrive=currentDrive+Dgetdrv();
|
||||
|
||||
16
src/setup.h
16
src/setup.h
@ -70,6 +70,22 @@ void Set_config_directory(const char * program_dir, char * config_dir);
|
||||
#define SKINS_SUBDIRECTORY "skins"
|
||||
#endif
|
||||
|
||||
/// Name of the subdirectory containing scripts
|
||||
#if defined (__MINT__)
|
||||
#define SCRIPTS_SUBDIRECTORY "SCRIPTS"
|
||||
#else
|
||||
#define SCRIPTS_SUBDIRECTORY "scripts"
|
||||
#endif
|
||||
|
||||
/// LUA directory prefix
|
||||
#if defined (__MINT__)
|
||||
#define LUALIB_SUBDIRECTORY "LIBS"
|
||||
#else
|
||||
#define LUALIB_SUBDIRECTORY "libs"
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/// Name of the binary file containing some configuration settings.
|
||||
#if defined (__MINT__)
|
||||
#define CONFIG_FILENAME "GFX2.CFG"
|
||||
|
||||
@ -37,21 +37,6 @@
|
||||
|
||||
//---------------------- Modifier le pinceau spécial -------------------------
|
||||
|
||||
int Circle_squared_diameter(int diameter)
|
||||
{
|
||||
int result = diameter*diameter;
|
||||
// Trick to make some circles rounder, even though
|
||||
// mathematically incorrect.
|
||||
if (diameter==3 || diameter==9)
|
||||
return result-2;
|
||||
if (diameter==11)
|
||||
return result-6;
|
||||
if (diameter==14)
|
||||
return result-4;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void Set_paintbrush_size(int width, int height)
|
||||
{
|
||||
int x_pos,y_pos;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user