[layers] Merged r1063 from trunk. Separated the controls for layers from translucency keys. Can now control up to 8 layers
git-svn-id: svn://pulkomandy.tk/GrafX2/branches/layers@1065 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
commit
0b07b43722
49
Makefile
49
Makefile
@ -175,6 +175,23 @@ else
|
|||||||
CC = gcc
|
CC = gcc
|
||||||
OBJDIR = obj/skyos
|
OBJDIR = obj/skyos
|
||||||
ZIP = zip
|
ZIP = zip
|
||||||
|
|
||||||
|
else ifeq ($(findstring Kickstart,$(shell version)),Kickstart)
|
||||||
|
# Classic amiga without gcc. Use vbcc.
|
||||||
|
PLATFORM = amiga-vbcc
|
||||||
|
DELCOMMAND = delete
|
||||||
|
MKDIR = makedir
|
||||||
|
RMDIR= delete
|
||||||
|
CP = copy
|
||||||
|
BIN = grafx2
|
||||||
|
COPT = -c99 -Ivbcc:PosixLib/include -D__amigaos__ $(TTFCOPT)
|
||||||
|
CC = vc
|
||||||
|
OBJDIR = obj/amiga-vbcc
|
||||||
|
ZIP = lha
|
||||||
|
ZIPOPT = a
|
||||||
|
|
||||||
|
NOTTF = 1
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
# Finally, the default rules that work fine for most unix/gcc systems, linux and freebsd are tested.
|
# Finally, the default rules that work fine for most unix/gcc systems, linux and freebsd are tested.
|
||||||
@ -245,12 +262,16 @@ else
|
|||||||
JOYCOPT =
|
JOYCOPT =
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($(PLATFORM),amiga-vbcc)
|
||||||
|
COPT += -DSVN_revision='"$(shell svnversion .)"' -DProgram_version='"$(LABEL)"'
|
||||||
|
endif
|
||||||
|
|
||||||
### And now for the real build rules ###
|
### And now for the real build rules ###
|
||||||
|
|
||||||
.PHONY : all debug release clean depend zip version force install uninstall
|
.PHONY : all debug release clean depend zip force install uninstall
|
||||||
|
|
||||||
# This is the list of the objects we want to build. Dependancies are built by "make depend" automatically.
|
# This is the list of the objects we want to build. Dependancies are built by "make depend" automatically.
|
||||||
OBJ = $(OBJDIR)/main.o $(OBJDIR)/init.o $(OBJDIR)/graph.o $(OBJDIR)/sdlscreen.o $(OBJDIR)/misc.o $(OBJDIR)/special.o $(OBJDIR)/buttons.o $(OBJDIR)/palette.o $(OBJDIR)/help.o $(OBJDIR)/operatio.o $(OBJDIR)/pages.o $(OBJDIR)/loadsave.o $(OBJDIR)/readline.o $(OBJDIR)/engine.o $(OBJDIR)/filesel.o $(OBJDIR)/op_c.o $(OBJDIR)/readini.o $(OBJDIR)/saveini.o $(OBJDIR)/shade.o $(OBJDIR)/keyboard.o $(OBJDIR)/io.o $(OBJDIR)/version.o $(OBJDIR)/text.o $(OBJDIR)/SFont.o $(OBJDIR)/setup.o $(OBJDIR)/pxsimple.o $(OBJDIR)/pxtall.o $(OBJDIR)/pxwide.o $(OBJDIR)/pxdouble.o $(OBJDIR)/pxtriple.o $(OBJDIR)/pxtall2.o $(OBJDIR)/pxwide2.o $(OBJDIR)/pxquad.o $(OBJDIR)/windows.o $(OBJDIR)/brush.o $(OBJDIR)/realpath.o $(OBJDIR)/mountlist.o $(OBJDIR)/input.o $(OBJDIR)/hotkeys.o $(OBJDIR)/transform.o $(OBJDIR)/pversion.o $(PLATFORMOBJ)
|
OBJ = $(OBJDIR)/main.o $(OBJDIR)/init.o $(OBJDIR)/graph.o $(OBJDIR)/sdlscreen.o $(OBJDIR)/misc.o $(OBJDIR)/special.o $(OBJDIR)/buttons.o $(OBJDIR)/palette.o $(OBJDIR)/help.o $(OBJDIR)/operatio.o $(OBJDIR)/pages.o $(OBJDIR)/loadsave.o $(OBJDIR)/readline.o $(OBJDIR)/engine.o $(OBJDIR)/filesel.o $(OBJDIR)/op_c.o $(OBJDIR)/readini.o $(OBJDIR)/saveini.o $(OBJDIR)/shade.o $(OBJDIR)/keyboard.o $(OBJDIR)/io.o $(OBJDIR)/text.o $(OBJDIR)/SFont.o $(OBJDIR)/setup.o $(OBJDIR)/pxsimple.o $(OBJDIR)/pxtall.o $(OBJDIR)/pxwide.o $(OBJDIR)/pxdouble.o $(OBJDIR)/pxtriple.o $(OBJDIR)/pxtall2.o $(OBJDIR)/pxwide2.o $(OBJDIR)/pxquad.o $(OBJDIR)/windows.o $(OBJDIR)/brush.o $(OBJDIR)/realpath.o $(OBJDIR)/mountlist.o $(OBJDIR)/input.o $(OBJDIR)/hotkeys.o $(OBJDIR)/transform.o $(OBJDIR)/pversion.o $(PLATFORMOBJ)
|
||||||
|
|
||||||
SKIN_FILES = skins/skin_classic.png skins/skin_modern.png skins/font_Classic.png skins/font_Fun.png
|
SKIN_FILES = skins/skin_classic.png skins/skin_modern.png skins/font_Classic.png skins/font_Fun.png
|
||||||
|
|
||||||
@ -295,27 +316,6 @@ testsed :
|
|||||||
|
|
||||||
$(BIN) : $(OBJ)
|
$(BIN) : $(OBJ)
|
||||||
$(CC) $(OBJ) -o $(BIN) $(LOPT)
|
$(CC) $(OBJ) -o $(BIN) $(LOPT)
|
||||||
|
|
||||||
# SVN revision number
|
|
||||||
version.c :
|
|
||||||
echo "char SVN_revision[]=\"`svnversion .`\";" > version.c
|
|
||||||
ifeq ($(LABEL),)
|
|
||||||
else
|
|
||||||
echo "char Program_version[]=\"$(LABEL)\";" > pversion.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
version : delversion delpversion version.c pversion.c $(OBJDIR)/version.o $(OBJDIR)/pversion.o all
|
|
||||||
|
|
||||||
|
|
||||||
delversion :
|
|
||||||
$(DELCOMMAND) version.c
|
|
||||||
|
|
||||||
delpversion :
|
|
||||||
ifeq ($(LABEL),)
|
|
||||||
else
|
|
||||||
$(DELCOMMAND) pversion.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(OBJDIR)/%.o : %.c
|
$(OBJDIR)/%.o : %.c
|
||||||
$(if $(wildcard $(OBJDIR)),,$(MKDIR) $(OBJDIR))
|
$(if $(wildcard $(OBJDIR)),,$(MKDIR) $(OBJDIR))
|
||||||
$(CC) $(COPT) -c $*.c -o $(OBJDIR)/$*.o
|
$(CC) $(COPT) -c $*.c -o $(OBJDIR)/$*.o
|
||||||
@ -335,6 +335,7 @@ clean :
|
|||||||
$(DELCOMMAND) $(OBJ)
|
$(DELCOMMAND) $(OBJ)
|
||||||
$(DELCOMMAND) $(BIN)
|
$(DELCOMMAND) $(BIN)
|
||||||
|
|
||||||
|
ifneq ($(PLATFORM),amiga-vbcc)
|
||||||
# Linux installation of the program
|
# Linux installation of the program
|
||||||
install : $(BIN)
|
install : $(BIN)
|
||||||
# Create dirs
|
# Create dirs
|
||||||
@ -376,5 +377,7 @@ uninstall :
|
|||||||
$(DELCOMMAND) $(DESTDIR)$(datadir)/icons/grafx2.xpm
|
$(DELCOMMAND) $(DESTDIR)$(datadir)/icons/grafx2.xpm
|
||||||
@echo Uninstall complete
|
@echo Uninstall complete
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
-include Makefile.dep
|
-include Makefile.dep
|
||||||
|
|
||||||
|
|||||||
27
Makefile.dep
27
Makefile.dep
@ -4,7 +4,7 @@ $(OBJDIR)/brush.o: brush.c global.h struct.h const.h graph.h misc.h errors.h \
|
|||||||
$(OBJDIR)/buttons.o: buttons.c const.h struct.h global.h misc.h graph.h engine.h \
|
$(OBJDIR)/buttons.o: buttons.c const.h struct.h global.h misc.h graph.h engine.h \
|
||||||
readline.h filesel.h loadsave.h init.h buttons.h operatio.h pages.h \
|
readline.h filesel.h loadsave.h init.h buttons.h operatio.h pages.h \
|
||||||
palette.h errors.h readini.h saveini.h shade.h io.h help.h text.h \
|
palette.h errors.h readini.h saveini.h shade.h io.h help.h text.h \
|
||||||
sdlscreen.h windows.h brush.h input.h
|
sdlscreen.h windows.h brush.h input.h special.h
|
||||||
$(OBJDIR)/engine.o: engine.c const.h struct.h global.h graph.h misc.h special.h \
|
$(OBJDIR)/engine.o: engine.c const.h struct.h global.h graph.h misc.h special.h \
|
||||||
buttons.h operatio.h shade.h errors.h sdlscreen.h windows.h brush.h \
|
buttons.h operatio.h shade.h errors.h sdlscreen.h windows.h brush.h \
|
||||||
input.h engine.h
|
input.h engine.h
|
||||||
@ -26,7 +26,8 @@ $(OBJDIR)/input.o: input.c global.h struct.h const.h keyboard.h sdlscreen.h \
|
|||||||
$(OBJDIR)/io.o: io.c struct.h const.h io.h realpath.h
|
$(OBJDIR)/io.o: io.c struct.h const.h io.h realpath.h
|
||||||
$(OBJDIR)/keyboard.o: keyboard.c global.h struct.h const.h keyboard.h
|
$(OBJDIR)/keyboard.o: keyboard.c global.h struct.h const.h keyboard.h
|
||||||
$(OBJDIR)/loadsave.o: loadsave.c buttons.h struct.h const.h errors.h global.h io.h \
|
$(OBJDIR)/loadsave.o: loadsave.c buttons.h struct.h const.h errors.h global.h io.h \
|
||||||
loadsave.h misc.h op_c.h pages.h palette.h sdlscreen.h windows.h
|
loadsave.h misc.h op_c.h pages.h palette.h sdlscreen.h windows.h \
|
||||||
|
engine.h
|
||||||
$(OBJDIR)/main.o: main.c const.h struct.h global.h graph.h misc.h init.h buttons.h \
|
$(OBJDIR)/main.o: main.c const.h struct.h global.h graph.h misc.h init.h buttons.h \
|
||||||
engine.h pages.h loadsave.h sdlscreen.h errors.h readini.h saveini.h \
|
engine.h pages.h loadsave.h sdlscreen.h errors.h readini.h saveini.h \
|
||||||
io.h text.h setup.h windows.h brush.h palette.h realpath.h
|
io.h text.h setup.h windows.h brush.h palette.h realpath.h
|
||||||
@ -43,18 +44,20 @@ $(OBJDIR)/palette.o: palette.c const.h struct.h global.h misc.h engine.h readlin
|
|||||||
palette.h shade.h
|
palette.h shade.h
|
||||||
$(OBJDIR)/pversion.o: pversion.c
|
$(OBJDIR)/pversion.o: pversion.c
|
||||||
$(OBJDIR)/pxdouble.o: pxdouble.c global.h struct.h const.h sdlscreen.h misc.h \
|
$(OBJDIR)/pxdouble.o: pxdouble.c global.h struct.h const.h sdlscreen.h misc.h \
|
||||||
pxdouble.h pxwide.h
|
graph.h pxdouble.h pxwide.h
|
||||||
$(OBJDIR)/pxquad.o: pxquad.c global.h struct.h const.h sdlscreen.h misc.h pxquad.h
|
$(OBJDIR)/pxquad.o: pxquad.c global.h struct.h const.h sdlscreen.h misc.h graph.h \
|
||||||
|
pxquad.h
|
||||||
$(OBJDIR)/pxsimple.o: pxsimple.c global.h struct.h const.h sdlscreen.h misc.h \
|
$(OBJDIR)/pxsimple.o: pxsimple.c global.h struct.h const.h sdlscreen.h misc.h \
|
||||||
pxsimple.h
|
graph.h pxsimple.h
|
||||||
$(OBJDIR)/pxtall.o: pxtall.c global.h struct.h const.h sdlscreen.h misc.h pxtall.h \
|
$(OBJDIR)/pxtall.o: pxtall.c global.h struct.h const.h sdlscreen.h misc.h graph.h \
|
||||||
pxsimple.h
|
pxtall.h pxsimple.h
|
||||||
$(OBJDIR)/pxtall2.o: pxtall2.c global.h struct.h const.h sdlscreen.h misc.h \
|
$(OBJDIR)/pxtall2.o: pxtall2.c global.h struct.h const.h sdlscreen.h misc.h graph.h \
|
||||||
pxtall2.h
|
pxtall2.h
|
||||||
$(OBJDIR)/pxtriple.o: pxtriple.c global.h struct.h const.h sdlscreen.h misc.h \
|
$(OBJDIR)/pxtriple.o: pxtriple.c global.h struct.h const.h sdlscreen.h misc.h \
|
||||||
pxtriple.h
|
graph.h pxtriple.h
|
||||||
$(OBJDIR)/pxwide.o: pxwide.c global.h struct.h const.h sdlscreen.h misc.h pxwide.h
|
$(OBJDIR)/pxwide.o: pxwide.c global.h struct.h const.h sdlscreen.h misc.h graph.h \
|
||||||
$(OBJDIR)/pxwide2.o: pxwide2.c global.h struct.h const.h sdlscreen.h misc.h \
|
pxwide.h
|
||||||
|
$(OBJDIR)/pxwide2.o: pxwide2.c global.h struct.h const.h sdlscreen.h misc.h graph.h \
|
||||||
pxwide2.h
|
pxwide2.h
|
||||||
$(OBJDIR)/readini.o: readini.c const.h global.h struct.h misc.h readini.h
|
$(OBJDIR)/readini.o: readini.c const.h global.h struct.h misc.h readini.h
|
||||||
$(OBJDIR)/readline.o: readline.c const.h struct.h global.h misc.h errors.h \
|
$(OBJDIR)/readline.o: readline.c const.h struct.h global.h misc.h errors.h \
|
||||||
@ -76,4 +79,4 @@ $(OBJDIR)/transform.o: transform.c global.h struct.h const.h transform.h engine.
|
|||||||
pages.h
|
pages.h
|
||||||
$(OBJDIR)/version.o: version.c
|
$(OBJDIR)/version.o: version.c
|
||||||
$(OBJDIR)/windows.o: windows.c windows.h struct.h const.h global.h graph.h engine.h \
|
$(OBJDIR)/windows.o: windows.c windows.h struct.h const.h global.h graph.h engine.h \
|
||||||
misc.h sdlscreen.h errors.h
|
misc.h sdlscreen.h errors.h input.h
|
||||||
|
|||||||
11
buttons.c
11
buttons.c
@ -53,6 +53,10 @@
|
|||||||
#include "input.h"
|
#include "input.h"
|
||||||
#include "special.h"
|
#include "special.h"
|
||||||
|
|
||||||
|
#ifdef __VBCC__
|
||||||
|
#define __attribute__(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__)
|
#if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__)
|
||||||
#include <proto/dos.h>
|
#include <proto/dos.h>
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
@ -66,7 +70,7 @@
|
|||||||
#define isHidden(x) ((x)->d_name[0]=='.')
|
#define isHidden(x) ((x)->d_name[0]=='.')
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern char Program_version[]; // generated in pversion.c
|
//extern char Program_version[]; // generated in pversion.c
|
||||||
|
|
||||||
extern short Old_MX;
|
extern short Old_MX;
|
||||||
extern short Old_MY;
|
extern short Old_MY;
|
||||||
@ -1508,7 +1512,7 @@ void Button_Copy_page(void)
|
|||||||
Copy_image_only();
|
Copy_image_only();
|
||||||
|
|
||||||
if (clicked_button==5)
|
if (clicked_button==5)
|
||||||
Remap_picture();
|
Remap_spare();
|
||||||
|
|
||||||
if (clicked_button!=2) // copie de la palette
|
if (clicked_button!=2) // copie de la palette
|
||||||
memcpy(Spare_palette,Main_palette,sizeof(T_Palette));
|
memcpy(Spare_palette,Main_palette,sizeof(T_Palette));
|
||||||
@ -4282,6 +4286,9 @@ void Transparency_set(byte amount)
|
|||||||
void Layer_activate(short layer, short side)
|
void Layer_activate(short layer, short side)
|
||||||
{
|
{
|
||||||
byte old_layers;
|
byte old_layers;
|
||||||
|
|
||||||
|
if (layer >= Main_backups->Pages->Nb_layers)
|
||||||
|
return;
|
||||||
|
|
||||||
// Keep a copy of which layers were visible
|
// Keep a copy of which layers were visible
|
||||||
old_layers = Main_layers_visible;
|
old_layers = Main_layers_visible;
|
||||||
|
|||||||
18
const.h
18
const.h
@ -33,7 +33,7 @@
|
|||||||
#define BETA1 98 ///< Version number for gfx2.cfg (3/4)
|
#define BETA1 98 ///< Version number for gfx2.cfg (3/4)
|
||||||
#define BETA2 0 ///< Version number for gfx2.cfg (4/4)
|
#define BETA2 0 ///< Version number for gfx2.cfg (4/4)
|
||||||
#define MAX_VIDEO_MODES 100 ///< Maximum number of video modes Grafx2 can propose.
|
#define MAX_VIDEO_MODES 100 ///< Maximum number of video modes Grafx2 can propose.
|
||||||
#define NB_SHORTCUTS 159 ///< Number of actions that can have a key combination associated to it.
|
#define NB_SHORTCUTS 175 ///< Number of actions that can have a key combination associated to it.
|
||||||
#define NB_ZOOM_FACTORS 12 ///< Number of zoom levels available in the magnifier.
|
#define NB_ZOOM_FACTORS 12 ///< Number of zoom levels available in the magnifier.
|
||||||
#define MENU_WIDTH 254 ///< Width of the menu (not counting the palette)
|
#define MENU_WIDTH 254 ///< Width of the menu (not counting the palette)
|
||||||
#define MENU_HEIGHT 44 ///< Height of the menu.
|
#define MENU_HEIGHT 44 ///< Height of the menu.
|
||||||
@ -408,6 +408,22 @@ enum SPECIAL_ACTIONS
|
|||||||
SPECIAL_ZOOM_18,
|
SPECIAL_ZOOM_18,
|
||||||
SPECIAL_ZOOM_20,
|
SPECIAL_ZOOM_20,
|
||||||
SPECIAL_SHOW_GRID,
|
SPECIAL_SHOW_GRID,
|
||||||
|
SPECIAL_LAYER1_SELECT,
|
||||||
|
SPECIAL_LAYER1_TOGGLE,
|
||||||
|
SPECIAL_LAYER2_SELECT,
|
||||||
|
SPECIAL_LAYER2_TOGGLE,
|
||||||
|
SPECIAL_LAYER3_SELECT,
|
||||||
|
SPECIAL_LAYER3_TOGGLE,
|
||||||
|
SPECIAL_LAYER4_SELECT,
|
||||||
|
SPECIAL_LAYER4_TOGGLE,
|
||||||
|
SPECIAL_LAYER5_SELECT,
|
||||||
|
SPECIAL_LAYER5_TOGGLE,
|
||||||
|
SPECIAL_LAYER6_SELECT,
|
||||||
|
SPECIAL_LAYER6_TOGGLE,
|
||||||
|
SPECIAL_LAYER7_SELECT,
|
||||||
|
SPECIAL_LAYER7_TOGGLE,
|
||||||
|
SPECIAL_LAYER8_SELECT,
|
||||||
|
SPECIAL_LAYER8_TOGGLE,
|
||||||
NB_SPECIAL_SHORTCUTS ///< Number of special shortcuts
|
NB_SPECIAL_SHORTCUTS ///< Number of special shortcuts
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
4
errors.h
4
errors.h
@ -21,6 +21,10 @@
|
|||||||
/// Functions and macros for tracing and error reporting.
|
/// Functions and macros for tracing and error reporting.
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef __func__
|
||||||
|
#define __func__ "stupid compiler !"
|
||||||
|
#endif
|
||||||
|
|
||||||
/// Prints the source filename, line number, function name, a string and an integer.
|
/// Prints the source filename, line number, function name, a string and an integer.
|
||||||
#define DEBUG(y,z) printf("%s %d %s | %s : %d###\n",__FILE__,__LINE__,__func__,y,(unsigned int)z)
|
#define DEBUG(y,z) printf("%s %d %s | %s : %d###\n",__FILE__,__LINE__,__func__,y,(unsigned int)z)
|
||||||
|
|
||||||
|
|||||||
9
graph.c
9
graph.c
@ -47,6 +47,11 @@
|
|||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
|
|
||||||
|
#ifdef __VBCC__
|
||||||
|
#define __attribute__(x)
|
||||||
|
#define M_PI 3.141592653589793238462643
|
||||||
|
#endif
|
||||||
|
|
||||||
// Generic pixel-drawing function.
|
// Generic pixel-drawing function.
|
||||||
Func_pixel Pixel_figure;
|
Func_pixel Pixel_figure;
|
||||||
|
|
||||||
@ -618,7 +623,7 @@ void Resize_image(word chosen_width,word chosen_height)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Remap_picture(void)
|
void Remap_spare(void)
|
||||||
{
|
{
|
||||||
short x_pos; // Variable de balayage de la brosse
|
short x_pos; // Variable de balayage de la brosse
|
||||||
short y_pos; // Variable de balayage de la brosse
|
short y_pos; // Variable de balayage de la brosse
|
||||||
@ -2857,4 +2862,4 @@ void Redraw_grid(short x, short y, unsigned short w, unsigned short h)
|
|||||||
Vertical_grid_line(col, y, h);
|
Vertical_grid_line(col, y, h);
|
||||||
col+= Snap_width*Main_magnifier_factor;
|
col+= Snap_width*Main_magnifier_factor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
3
graph.h
3
graph.h
@ -95,7 +95,8 @@ void Draw_grad_rectangle(short rax,short ray,short rbx,short rby,short vax,short
|
|||||||
void Polyfill_general(int vertices, short * points, int color);
|
void Polyfill_general(int vertices, short * points, int color);
|
||||||
void Polyfill(int vertices, short * points, int color);
|
void Polyfill(int vertices, short * points, int color);
|
||||||
|
|
||||||
void Remap_picture(void);
|
/// Remap the spare page according to the main page's palette
|
||||||
|
void Remap_spare(void);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// All the figure-drawing functions work by calling this function for each
|
/// All the figure-drawing functions work by calling this function for each
|
||||||
|
|||||||
3
help.c
3
help.c
@ -46,9 +46,6 @@
|
|||||||
#include "hotkeys.h"
|
#include "hotkeys.h"
|
||||||
#include "errors.h"
|
#include "errors.h"
|
||||||
|
|
||||||
extern char SVN_revision[]; // generated in version.c
|
|
||||||
extern char Program_version[]; // generated in pversion.c
|
|
||||||
|
|
||||||
// Recherche un raccourci clavier:
|
// Recherche un raccourci clavier:
|
||||||
word * Shortcut(word shortcut_number)
|
word * Shortcut(word shortcut_number)
|
||||||
{
|
{
|
||||||
|
|||||||
17
helpfile.h
17
helpfile.h
@ -283,6 +283,23 @@ static const T_Help_table helptable_help[] =
|
|||||||
HELP_LINK (" Next : %s", SPECIAL_NEXT_USER_BACKCOLOR)
|
HELP_LINK (" Next : %s", SPECIAL_NEXT_USER_BACKCOLOR)
|
||||||
HELP_LINK (" Previous: %s", SPECIAL_PREVIOUS_USER_BACKCOLOR)
|
HELP_LINK (" Previous: %s", SPECIAL_PREVIOUS_USER_BACKCOLOR)
|
||||||
HELP_TEXT ("")
|
HELP_TEXT ("")
|
||||||
|
HELP_TEXT ("LAYERS")
|
||||||
|
HELP_LINK (" Select 1 : %s", SPECIAL_LAYER1_SELECT)
|
||||||
|
HELP_LINK (" Toggle 1 : %s", SPECIAL_LAYER1_TOGGLE)
|
||||||
|
HELP_LINK (" Select 2 : %s", SPECIAL_LAYER2_SELECT)
|
||||||
|
HELP_LINK (" Toggle 2 : %s", SPECIAL_LAYER2_TOGGLE)
|
||||||
|
HELP_LINK (" Select 3 : %s", SPECIAL_LAYER3_SELECT)
|
||||||
|
HELP_LINK (" Toggle 3 : %s", SPECIAL_LAYER3_TOGGLE)
|
||||||
|
HELP_LINK (" Select 4 : %s", SPECIAL_LAYER4_SELECT)
|
||||||
|
HELP_LINK (" Toggle 4 : %s", SPECIAL_LAYER4_TOGGLE)
|
||||||
|
HELP_LINK (" Select 5 : %s", SPECIAL_LAYER5_SELECT)
|
||||||
|
HELP_LINK (" Toggle 5 : %s", SPECIAL_LAYER5_TOGGLE)
|
||||||
|
HELP_LINK (" Select 6 : %s", SPECIAL_LAYER6_SELECT)
|
||||||
|
HELP_LINK (" Toggle 6 : %s", SPECIAL_LAYER6_TOGGLE)
|
||||||
|
HELP_LINK (" Select 7 : %s", SPECIAL_LAYER7_SELECT)
|
||||||
|
HELP_LINK (" Toggle 7 : %s", SPECIAL_LAYER7_TOGGLE)
|
||||||
|
HELP_LINK (" Select 8 : %s", SPECIAL_LAYER8_SELECT)
|
||||||
|
HELP_LINK (" Toggle 8 : %s", SPECIAL_LAYER8_TOGGLE)
|
||||||
};
|
};
|
||||||
static const T_Help_table helptable_credits[] =
|
static const T_Help_table helptable_credits[] =
|
||||||
{
|
{
|
||||||
|
|||||||
150
hotkeys.c
150
hotkeys.c
@ -21,6 +21,11 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "hotkeys.h"
|
#include "hotkeys.h"
|
||||||
|
|
||||||
|
#ifdef __VBCC__
|
||||||
|
#define false 0
|
||||||
|
#define true 1
|
||||||
|
#endif
|
||||||
|
|
||||||
T_Key_config ConfigKey[NB_SHORTCUTS] = {
|
T_Key_config ConfigKey[NB_SHORTCUTS] = {
|
||||||
{0,
|
{0,
|
||||||
"Scroll up",
|
"Scroll up",
|
||||||
@ -1294,6 +1299,135 @@ T_Key_config ConfigKey[NB_SHORTCUTS] = {
|
|||||||
true,
|
true,
|
||||||
SDLK_g|MOD_SHIFT|MOD_ALT, // Shift + Alt + G,
|
SDLK_g|MOD_SHIFT|MOD_ALT, // Shift + Alt + G,
|
||||||
0},
|
0},
|
||||||
|
{159,
|
||||||
|
"Select layer 1",
|
||||||
|
"Makes the layer 1 visible and",
|
||||||
|
"set it as the active one, where",
|
||||||
|
"you can draw.",
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
0},
|
||||||
|
{160,
|
||||||
|
"Toggle layer 1",
|
||||||
|
"Makes layer 1 visible or invisible.",
|
||||||
|
"If it's the current active layer,",
|
||||||
|
"toggle all other layers instead.",
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
0},
|
||||||
|
{161,
|
||||||
|
"Select layer 2",
|
||||||
|
"Makes the layer 2 visible and",
|
||||||
|
"set it as the active one, where",
|
||||||
|
"you can draw.",
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
0},
|
||||||
|
{162,
|
||||||
|
"Toggle layer 2",
|
||||||
|
"Makes layer 2 visible or invisible.",
|
||||||
|
"If it's the current active layer,",
|
||||||
|
"toggle all other layers instead.",
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
0},
|
||||||
|
{163,
|
||||||
|
"Select layer 3",
|
||||||
|
"Makes the layer 3 visible and",
|
||||||
|
"set it as the active one, where",
|
||||||
|
"you can draw.",
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
0},
|
||||||
|
{164,
|
||||||
|
"Toggle layer 3",
|
||||||
|
"Makes layer 3 visible or invisible.",
|
||||||
|
"If it's the current active layer,",
|
||||||
|
"toggle all other layers instead.",
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
0},
|
||||||
|
{165,
|
||||||
|
"Select layer 4",
|
||||||
|
"Makes the layer 4 visible and",
|
||||||
|
"set it as the active one, where",
|
||||||
|
"you can draw.",
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
0},
|
||||||
|
{166,
|
||||||
|
"Toggle layer 4",
|
||||||
|
"Makes layer 4 visible or invisible.",
|
||||||
|
"If it's the current active layer,",
|
||||||
|
"toggle all other layers instead.",
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
0},
|
||||||
|
{167,
|
||||||
|
"Select layer 5",
|
||||||
|
"Makes the layer 5 visible and",
|
||||||
|
"set it as the active one, where",
|
||||||
|
"you can draw.",
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
0},
|
||||||
|
{168,
|
||||||
|
"Toggle layer 5",
|
||||||
|
"Makes layer 5 visible or invisible.",
|
||||||
|
"If it's the current active layer,",
|
||||||
|
"toggle all other layers instead.",
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
0},
|
||||||
|
{169,
|
||||||
|
"Select layer 6",
|
||||||
|
"Makes the layer 6 visible and",
|
||||||
|
"set it as the active one, where",
|
||||||
|
"you can draw.",
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
0},
|
||||||
|
{170,
|
||||||
|
"Toggle layer 6",
|
||||||
|
"Makes layer 6 visible or invisible.",
|
||||||
|
"If it's the current active layer,",
|
||||||
|
"toggle all other layers instead.",
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
0},
|
||||||
|
{171,
|
||||||
|
"Select layer 7",
|
||||||
|
"Makes the layer 7 visible and",
|
||||||
|
"set it as the active one, where",
|
||||||
|
"you can draw.",
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
0},
|
||||||
|
{172,
|
||||||
|
"Toggle layer 7",
|
||||||
|
"Makes layer 7 visible or invisible.",
|
||||||
|
"If it's the current active layer,",
|
||||||
|
"toggle all other layers instead.",
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
0},
|
||||||
|
{173,
|
||||||
|
"Select layer 8",
|
||||||
|
"Makes the layer 8 visible and",
|
||||||
|
"set it as the active one, where",
|
||||||
|
"you can draw.",
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
0},
|
||||||
|
{174,
|
||||||
|
"Toggle layer 8",
|
||||||
|
"Makes layer 8 visible or invisible.",
|
||||||
|
"If it's the current active layer,",
|
||||||
|
"toggle all other layers instead.",
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
0},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
word Ordering[NB_SHORTCUTS]=
|
word Ordering[NB_SHORTCUTS]=
|
||||||
@ -1457,4 +1591,20 @@ word Ordering[NB_SHORTCUTS]=
|
|||||||
SPECIAL_ZOOM_18, /**< Sets zoom factor to 18:1 */
|
SPECIAL_ZOOM_18, /**< Sets zoom factor to 18:1 */
|
||||||
SPECIAL_ZOOM_20, /**< Sets zoom factor to 20:1 */
|
SPECIAL_ZOOM_20, /**< Sets zoom factor to 20:1 */
|
||||||
SPECIAL_SHOW_GRID,
|
SPECIAL_SHOW_GRID,
|
||||||
|
SPECIAL_LAYER1_SELECT,
|
||||||
|
SPECIAL_LAYER1_TOGGLE,
|
||||||
|
SPECIAL_LAYER2_SELECT,
|
||||||
|
SPECIAL_LAYER2_TOGGLE,
|
||||||
|
SPECIAL_LAYER3_SELECT,
|
||||||
|
SPECIAL_LAYER3_TOGGLE,
|
||||||
|
SPECIAL_LAYER4_SELECT,
|
||||||
|
SPECIAL_LAYER4_TOGGLE,
|
||||||
|
SPECIAL_LAYER5_SELECT,
|
||||||
|
SPECIAL_LAYER5_TOGGLE,
|
||||||
|
SPECIAL_LAYER6_SELECT,
|
||||||
|
SPECIAL_LAYER6_TOGGLE,
|
||||||
|
SPECIAL_LAYER7_SELECT,
|
||||||
|
SPECIAL_LAYER7_TOGGLE,
|
||||||
|
SPECIAL_LAYER8_SELECT,
|
||||||
|
SPECIAL_LAYER8_TOGGLE,
|
||||||
};
|
};
|
||||||
|
|||||||
@ -24,7 +24,11 @@
|
|||||||
/// The actual data is in hotkeys.c
|
/// The actual data is in hotkeys.c
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include <stdbool.h>
|
#ifndef __VBCC__
|
||||||
|
#include <stdbool.h>
|
||||||
|
#else
|
||||||
|
#define bool char
|
||||||
|
#endif
|
||||||
#include <SDL.h>
|
#include <SDL.h>
|
||||||
|
|
||||||
/*** Types definitions and structs ***/
|
/*** Types definitions and structs ***/
|
||||||
|
|||||||
9
init.c
9
init.c
@ -25,11 +25,14 @@
|
|||||||
#if defined(__WIN32__) || defined(__linux__)
|
#if defined(__WIN32__) || defined(__linux__)
|
||||||
#define GRAFX2_CATCHES_SIGNALS
|
#define GRAFX2_CATCHES_SIGNALS
|
||||||
#endif
|
#endif
|
||||||
#include <fcntl.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <fcntl.h>
|
//#include <fcntl.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
|
||||||
|
#ifndef __VBCC__
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <SDL_byteorder.h>
|
#include <SDL_byteorder.h>
|
||||||
|
|||||||
45
input.c
45
input.c
@ -28,6 +28,10 @@
|
|||||||
#include "misc.h"
|
#include "misc.h"
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
|
|
||||||
|
#ifdef __VBCC__
|
||||||
|
#define __attribute__(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
void Handle_window_resize(SDL_ResizeEvent event);
|
void Handle_window_resize(SDL_ResizeEvent event);
|
||||||
void Handle_window_exit(SDL_QuitEvent event);
|
void Handle_window_exit(SDL_QuitEvent event);
|
||||||
|
|
||||||
@ -198,40 +202,6 @@ int Move_cursor_with_constraints()
|
|||||||
return feedback;
|
return feedback;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inhibits a key shortcut if it's disallowed during an operation.
|
|
||||||
dword Inhibit_shortcut(dword key)
|
|
||||||
{
|
|
||||||
if (Operation_stack_size!=0 && key != 0)
|
|
||||||
{
|
|
||||||
//Enfin, on inhibe les touches (sauf si c'est un changement de couleur
|
|
||||||
//ou de taille de pinceau lors d'une des operations suivantes:
|
|
||||||
//OPERATION_CONTINUOUS_DRAW, OPERATION_DISCONTINUOUS_DRAW, OPERATION_AIRBRUSH)
|
|
||||||
if(Allow_color_change_during_operation)
|
|
||||||
{
|
|
||||||
//A ce stade là, on sait qu'on est dans une des 3 opérations
|
|
||||||
//supportant le changement de couleur ou de taille de pinceau.
|
|
||||||
|
|
||||||
if(
|
|
||||||
(!Is_shortcut(key,SPECIAL_NEXT_FORECOLOR)) &&
|
|
||||||
(!Is_shortcut(key,SPECIAL_PREVIOUS_FORECOLOR)) &&
|
|
||||||
(!Is_shortcut(key,SPECIAL_NEXT_BACKCOLOR)) &&
|
|
||||||
(!Is_shortcut(key,SPECIAL_PREVIOUS_BACKCOLOR)) &&
|
|
||||||
(!Is_shortcut(key,SPECIAL_SMALLER_PAINTBRUSH)) &&
|
|
||||||
(!Is_shortcut(key,SPECIAL_BIGGER_PAINTBRUSH)) &&
|
|
||||||
(!Is_shortcut(key,SPECIAL_NEXT_USER_FORECOLOR)) &&
|
|
||||||
(!Is_shortcut(key,SPECIAL_PREVIOUS_USER_FORECOLOR)) &&
|
|
||||||
(!Is_shortcut(key,SPECIAL_NEXT_USER_BACKCOLOR)) &&
|
|
||||||
(!Is_shortcut(key,SPECIAL_PREVIOUS_USER_BACKCOLOR))
|
|
||||||
)
|
|
||||||
{
|
|
||||||
key=0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else key = 0;
|
|
||||||
}
|
|
||||||
return key;
|
|
||||||
}
|
|
||||||
|
|
||||||
// WM events management
|
// WM events management
|
||||||
|
|
||||||
void Handle_window_resize(SDL_ResizeEvent event)
|
void Handle_window_resize(SDL_ResizeEvent event)
|
||||||
@ -290,16 +260,16 @@ int Handle_mouse_click(SDL_MouseButtonEvent event)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_BUTTON_MIDDLE:
|
case SDL_BUTTON_MIDDLE:
|
||||||
Key = Inhibit_shortcut(KEY_MOUSEMIDDLE|Key_modifiers(SDL_GetModState()));
|
Key = KEY_MOUSEMIDDLE|Key_modifiers(SDL_GetModState());
|
||||||
// TODO: repeat system maybe?
|
// TODO: repeat system maybe?
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case SDL_BUTTON_WHEELUP:
|
case SDL_BUTTON_WHEELUP:
|
||||||
Key = Inhibit_shortcut(KEY_MOUSEWHEELUP|Key_modifiers(SDL_GetModState()));
|
Key = KEY_MOUSEWHEELUP|Key_modifiers(SDL_GetModState());
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case SDL_BUTTON_WHEELDOWN:
|
case SDL_BUTTON_WHEELDOWN:
|
||||||
Key = Inhibit_shortcut(KEY_MOUSEWHEELDOWN|Key_modifiers(SDL_GetModState()));
|
Key = KEY_MOUSEWHEELDOWN|Key_modifiers(SDL_GetModState());
|
||||||
return 0;
|
return 0;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
@ -364,7 +334,6 @@ int Handle_key_press(SDL_KeyboardEvent event)
|
|||||||
return Move_cursor_with_constraints();
|
return Move_cursor_with_constraints();
|
||||||
}
|
}
|
||||||
|
|
||||||
Key = Inhibit_shortcut(Key);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
41
loadsave.c
41
loadsave.c
@ -871,6 +871,7 @@ void Save_PAL(void)
|
|||||||
//////////////////////////////////// IMG ////////////////////////////////////
|
//////////////////////////////////// IMG ////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
#pragma pack(1)
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
byte Filler1[6];
|
byte Filler1[6];
|
||||||
@ -878,7 +879,8 @@ typedef struct
|
|||||||
word Height;
|
word Height;
|
||||||
byte Filler2[118];
|
byte Filler2[118];
|
||||||
T_Palette Palette;
|
T_Palette Palette;
|
||||||
} __attribute__((__packed__)) T_IMG_Header;
|
} T_IMG_Header;
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
// -- Tester si un fichier est au format IMG --------------------------------
|
// -- Tester si un fichier est au format IMG --------------------------------
|
||||||
void Test_IMG(void)
|
void Test_IMG(void)
|
||||||
@ -1040,6 +1042,7 @@ void Save_IMG(void)
|
|||||||
//////////////////////////////////// PKM ////////////////////////////////////
|
//////////////////////////////////// PKM ////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
#pragma pack(1)
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
char Ident[3]; // Chaîne "PKM" }
|
char Ident[3]; // Chaîne "PKM" }
|
||||||
@ -1053,7 +1056,8 @@ typedef struct
|
|||||||
T_Palette Palette; // Palette RVB 256*3
|
T_Palette Palette; // Palette RVB 256*3
|
||||||
word Jump; // Taille du saut entre le header et l'image:
|
word Jump; // Taille du saut entre le header et l'image:
|
||||||
// On va s'en servir pour rajouter un commentaire
|
// On va s'en servir pour rajouter un commentaire
|
||||||
} __attribute__((__packed__)) T_PKM_Header;
|
} T_PKM_Header;
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
// -- Tester si un fichier est au format PKM --------------------------------
|
// -- Tester si un fichier est au format PKM --------------------------------
|
||||||
void Test_PKM(void)
|
void Test_PKM(void)
|
||||||
@ -1498,6 +1502,7 @@ void Save_PKM(void)
|
|||||||
//////////////////////////////////// LBM ////////////////////////////////////
|
//////////////////////////////////// LBM ////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
#pragma pack(1)
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
word Width;
|
word Width;
|
||||||
@ -1513,7 +1518,8 @@ typedef struct
|
|||||||
byte Y_aspect; // Inutile
|
byte Y_aspect; // Inutile
|
||||||
word X_screen;
|
word X_screen;
|
||||||
word Y_screen;
|
word Y_screen;
|
||||||
} __attribute__((__packed__)) T_LBM_Header;
|
} T_LBM_Header;
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
byte * LBM_buffer;
|
byte * LBM_buffer;
|
||||||
FILE *LBM_file;
|
FILE *LBM_file;
|
||||||
@ -2282,7 +2288,7 @@ void Save_LBM(void)
|
|||||||
//////////////////////////////////// BMP ////////////////////////////////////
|
//////////////////////////////////// BMP ////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
#pragma pack(1)
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
word Signature; // ='BM' = 0x4D42
|
word Signature; // ='BM' = 0x4D42
|
||||||
@ -2302,7 +2308,8 @@ typedef struct
|
|||||||
dword YPM;
|
dword YPM;
|
||||||
dword Nb_Clr;
|
dword Nb_Clr;
|
||||||
dword Clr_Imprt;
|
dword Clr_Imprt;
|
||||||
} __attribute__((__packed__)) T_BMP_Header;
|
} T_BMP_Header;
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
// -- Tester si un fichier est au format BMP --------------------------------
|
// -- Tester si un fichier est au format BMP --------------------------------
|
||||||
void Test_BMP(void)
|
void Test_BMP(void)
|
||||||
@ -2852,6 +2859,7 @@ void Save_BMP(void)
|
|||||||
//////////////////////////////////// GIF ////////////////////////////////////
|
//////////////////////////////////// GIF ////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
#pragma pack(1)
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
word Width; // width de l'écran virtuel
|
word Width; // width de l'écran virtuel
|
||||||
@ -2859,7 +2867,7 @@ typedef struct
|
|||||||
byte Resol; // Informations sur la résolution (et autres)
|
byte Resol; // Informations sur la résolution (et autres)
|
||||||
byte Backcol; // color de fond
|
byte Backcol; // color de fond
|
||||||
byte Aspect; // Informations sur l'aspect ratio (et autres)
|
byte Aspect; // Informations sur l'aspect ratio (et autres)
|
||||||
} __attribute__((__packed__)) T_GIF_LSDB; // Logical Screen Descriptor Block
|
} T_GIF_LSDB; // Logical Screen Descriptor Block
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
@ -2869,7 +2877,8 @@ typedef struct
|
|||||||
word Image_height; // height de l'image
|
word Image_height; // height de l'image
|
||||||
byte Indicator; // Informations diverses sur l'image
|
byte Indicator; // Informations diverses sur l'image
|
||||||
byte Nb_bits_pixel; // Nb de bits par pixel
|
byte Nb_bits_pixel; // Nb de bits par pixel
|
||||||
} __attribute__((__packed__)) T_GIF_IDB; // Image Descriptor Block
|
} T_GIF_IDB; // Image Descriptor Block
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
// -- Tester si un fichier est au format GIF --------------------------------
|
// -- Tester si un fichier est au format GIF --------------------------------
|
||||||
|
|
||||||
@ -3719,6 +3728,7 @@ void Save_GIF(void)
|
|||||||
//////////////////////////////////// PCX ////////////////////////////////////
|
//////////////////////////////////// PCX ////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
#pragma pack(1)
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
byte Manufacturer; // |_ Il font chier ces cons! Ils auraient pu
|
byte Manufacturer; // |_ Il font chier ces cons! Ils auraient pu
|
||||||
@ -3739,7 +3749,8 @@ typedef struct
|
|||||||
word Screen_X; // |_ Dimensions de
|
word Screen_X; // |_ Dimensions de
|
||||||
word Screen_Y; // | l'écran d'origine
|
word Screen_Y; // | l'écran d'origine
|
||||||
byte Filler[54]; // Ca... J'adore!
|
byte Filler[54]; // Ca... J'adore!
|
||||||
} __attribute__((__packed__)) T_PCX_Header;
|
} T_PCX_Header;
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
T_PCX_Header PCX_header;
|
T_PCX_Header PCX_header;
|
||||||
|
|
||||||
@ -4258,11 +4269,12 @@ void Save_PCX(void)
|
|||||||
//////////////////////////////////// CEL ////////////////////////////////////
|
//////////////////////////////////// CEL ////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
#pragma pack(1)
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
word Width; // width de l'image
|
word Width; // width de l'image
|
||||||
word Height; // height de l'image
|
word Height; // height de l'image
|
||||||
} __attribute__((__packed__)) T_CEL_Header1;
|
} T_CEL_Header1;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
@ -4275,7 +4287,8 @@ typedef struct
|
|||||||
word X_offset; // Offset en X de l'image
|
word X_offset; // Offset en X de l'image
|
||||||
word Y_offset; // Offset en Y de l'image
|
word Y_offset; // Offset en Y de l'image
|
||||||
byte Filler2[16]; // ???
|
byte Filler2[16]; // ???
|
||||||
} __attribute__((__packed__)) T_CEL_Header2;
|
} T_CEL_Header2;
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
// -- Tester si un fichier est au format CEL --------------------------------
|
// -- Tester si un fichier est au format CEL --------------------------------
|
||||||
|
|
||||||
@ -4575,6 +4588,7 @@ void Save_CEL(void)
|
|||||||
//////////////////////////////////// KCF ////////////////////////////////////
|
//////////////////////////////////// KCF ////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
#pragma pack(1)
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
struct
|
struct
|
||||||
@ -4585,7 +4599,8 @@ typedef struct
|
|||||||
byte Byte2;
|
byte Byte2;
|
||||||
} color[16];
|
} color[16];
|
||||||
} Palette[10];
|
} Palette[10];
|
||||||
} __attribute__((__packed__)) T_KCF_Header;
|
} T_KCF_Header;
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
// -- Tester si un fichier est au format KCF --------------------------------
|
// -- Tester si un fichier est au format KCF --------------------------------
|
||||||
|
|
||||||
@ -4834,6 +4849,7 @@ void Save_KCF(void)
|
|||||||
//////////////////////////////////// SCx ////////////////////////////////////
|
//////////////////////////////////// SCx ////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
#pragma pack(1)
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
byte Filler1[4];
|
byte Filler1[4];
|
||||||
@ -4841,7 +4857,8 @@ typedef struct
|
|||||||
word Height;
|
word Height;
|
||||||
byte Filler2;
|
byte Filler2;
|
||||||
byte Planes;
|
byte Planes;
|
||||||
} __attribute__((__packed__)) T_SCx_Header;
|
} T_SCx_Header;
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
// -- Tester si un fichier est au format SCx --------------------------------
|
// -- Tester si un fichier est au format SCx --------------------------------
|
||||||
void Test_SCx(void)
|
void Test_SCx(void)
|
||||||
|
|||||||
15
main.c
15
main.c
@ -92,11 +92,20 @@ void Display_syntax(void)
|
|||||||
printf("\t/tall2 to emulate a video mode with double tall pixels (2x4)\n");
|
printf("\t/tall2 to emulate a video mode with double tall pixels (2x4)\n");
|
||||||
printf("\t/triple to emulate a video mode with triple pixels (3x3)\n");
|
printf("\t/triple to emulate a video mode with triple pixels (3x3)\n");
|
||||||
printf("\t/quadruple to emulate a video mode with quadruple pixels (4x4)\n");
|
printf("\t/quadruple to emulate a video mode with quadruple pixels (4x4)\n");
|
||||||
printf("\t/skin <filename> use an alternate file with the menu graphics\n");
|
printf("\t/rgb n to reduce RGB precision from 256 to n levels\n");
|
||||||
|
printf("\t/skin <filename> to use an alternate file with the menu graphics\n");
|
||||||
printf("\t/mode <videomode> to set a video mode\n\n");
|
printf("\t/mode <videomode> to set a video mode\n\n");
|
||||||
printf("Available video modes:\n\n");
|
printf("Available video modes:\n\n");
|
||||||
for (mode_index=0; mode_index<Nb_video_modes; mode_index++)
|
for (mode_index = 0; mode_index < Nb_video_modes; mode_index += 12)
|
||||||
printf("\t%s\n",Mode_label(mode_index));
|
{
|
||||||
|
int k;
|
||||||
|
for (k = 0; k < 6; k++)
|
||||||
|
{
|
||||||
|
if (mode_index + k >= Nb_video_modes) break;
|
||||||
|
printf("%12s",Mode_label(mode_index + k));
|
||||||
|
}
|
||||||
|
puts("");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
12
misc.c
12
misc.c
@ -741,15 +741,15 @@ void Zoom_a_line(byte* original_line, byte* zoomed_line,
|
|||||||
#define _WIN32_WINNT 0x0500
|
#define _WIN32_WINNT 0x0500
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#elif defined(__macosx__) || defined(__FreeBSD__)
|
#elif defined(__macosx__) || defined(__FreeBSD__)
|
||||||
#include <sys/sysctl.h>
|
#include <sys/sysctl.h>
|
||||||
#elif defined(__BEOS__) || defined(__HAIKU__)
|
#elif defined(__BEOS__) || defined(__HAIKU__)
|
||||||
// sysinfo not implemented
|
// sysinfo not implemented
|
||||||
#elif defined(__AROS__) || defined(__amigaos4__) || defined(__MORPHOS__) || defined(__amigaos__)
|
#elif defined(__AROS__) || defined(__amigaos4__) || defined(__MORPHOS__) || defined(__amigaos__)
|
||||||
#include <proto/exec.h>
|
#include <proto/exec.h>
|
||||||
#elif defined(__SKYOS__)
|
#elif defined(__SKYOS__)
|
||||||
#include <skyos/sysinfo.h>
|
#include <skyos/sysinfo.h>
|
||||||
#else
|
#else
|
||||||
#include <sys/sysinfo.h> // sysinfo() for free RAM
|
#include <sys/sysinfo.h> // sysinfo() for free RAM
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Indique quelle est la mémoire disponible
|
// Indique quelle est la mémoire disponible
|
||||||
@ -870,4 +870,6 @@ int Convert_videomode_arg(const char *argument)
|
|||||||
return mode_index;
|
return mode_index;
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,8 +26,13 @@
|
|||||||
#ifndef MOUNTLIST_H_
|
#ifndef MOUNTLIST_H_
|
||||||
# define MOUNTLIST_H_
|
# define MOUNTLIST_H_
|
||||||
|
|
||||||
# include <stdbool.h>
|
#ifndef __VBCC__
|
||||||
# include <sys/types.h>
|
# include <stdbool.h>
|
||||||
|
#else
|
||||||
|
#define bool char
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
/* A mount table entry. */
|
/* A mount table entry. */
|
||||||
struct mount_entry
|
struct mount_entry
|
||||||
|
|||||||
@ -35,7 +35,8 @@
|
|||||||
#include "brush.h"
|
#include "brush.h"
|
||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
|
|
||||||
#if defined(__GP2X__)
|
// PI is NOT part of math.h according to C standards...
|
||||||
|
#if defined(__GP2X__) || defined(__VBCC__)
|
||||||
#define M_PI 3.14159265358979323846
|
#define M_PI 3.14159265358979323846
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@ -32,6 +32,10 @@
|
|||||||
#define ZOOMX 2
|
#define ZOOMX 2
|
||||||
#define ZOOMY 2
|
#define ZOOMY 2
|
||||||
|
|
||||||
|
#ifdef __VBCC__
|
||||||
|
#define __attribute__(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
void Pixel_double (word x,word y,byte color)
|
void Pixel_double (word x,word y,byte color)
|
||||||
/* Affiche un pixel de la color aux coords x;y à l'écran */
|
/* Affiche un pixel de la color aux coords x;y à l'écran */
|
||||||
{
|
{
|
||||||
|
|||||||
4
pxquad.c
4
pxquad.c
@ -31,6 +31,10 @@
|
|||||||
#define ZOOMX 4
|
#define ZOOMX 4
|
||||||
#define ZOOMY 4
|
#define ZOOMY 4
|
||||||
|
|
||||||
|
#ifdef __VBCC__
|
||||||
|
#define __attribute__(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
void Pixel_quad (word x,word y,byte color)
|
void Pixel_quad (word x,word y,byte color)
|
||||||
/* Affiche un pixel de la color aux coords x;y à l'écran */
|
/* Affiche un pixel de la color aux coords x;y à l'écran */
|
||||||
{
|
{
|
||||||
|
|||||||
@ -28,6 +28,10 @@
|
|||||||
#include "graph.h"
|
#include "graph.h"
|
||||||
#include "pxsimple.h"
|
#include "pxsimple.h"
|
||||||
|
|
||||||
|
#ifdef __VBCC__
|
||||||
|
#define __attribute__(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
void Pixel_simple (word x,word y,byte color)
|
void Pixel_simple (word x,word y,byte color)
|
||||||
/* Affiche un pixel de la color aux coords x;y à l'écran */
|
/* Affiche un pixel de la color aux coords x;y à l'écran */
|
||||||
{
|
{
|
||||||
|
|||||||
4
pxtall.c
4
pxtall.c
@ -32,6 +32,10 @@
|
|||||||
#define ZOOMX 1
|
#define ZOOMX 1
|
||||||
#define ZOOMY 2
|
#define ZOOMY 2
|
||||||
|
|
||||||
|
#ifdef __VBCC__
|
||||||
|
#define __attribute__(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
void Pixel_tall (word x,word y,byte color)
|
void Pixel_tall (word x,word y,byte color)
|
||||||
/* Affiche un pixel de la color aux coords x;y à l'écran */
|
/* Affiche un pixel de la color aux coords x;y à l'écran */
|
||||||
{
|
{
|
||||||
|
|||||||
@ -31,6 +31,10 @@
|
|||||||
#define ZOOMX 2
|
#define ZOOMX 2
|
||||||
#define ZOOMY 4
|
#define ZOOMY 4
|
||||||
|
|
||||||
|
#ifdef __VBCC__
|
||||||
|
#define __attribute__(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
void Pixel_tall2 (word x,word y,byte color)
|
void Pixel_tall2 (word x,word y,byte color)
|
||||||
/* Affiche un pixel de la color aux coords x;y à l'écran */
|
/* Affiche un pixel de la color aux coords x;y à l'écran */
|
||||||
{
|
{
|
||||||
|
|||||||
@ -31,6 +31,10 @@
|
|||||||
#define ZOOMX 3
|
#define ZOOMX 3
|
||||||
#define ZOOMY 3
|
#define ZOOMY 3
|
||||||
|
|
||||||
|
#ifdef __VBCC__
|
||||||
|
#define __attribute__(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
void Pixel_triple (word x,word y,byte color)
|
void Pixel_triple (word x,word y,byte color)
|
||||||
/* Affiche un pixel de la color aux coords x;y à l'écran */
|
/* Affiche un pixel de la color aux coords x;y à l'écran */
|
||||||
{
|
{
|
||||||
|
|||||||
4
pxwide.c
4
pxwide.c
@ -31,6 +31,10 @@
|
|||||||
#define ZOOMX 2
|
#define ZOOMX 2
|
||||||
#define ZOOMY 1
|
#define ZOOMY 1
|
||||||
|
|
||||||
|
#ifdef __VBCC__
|
||||||
|
#define __attribute__(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
void Pixel_wide (word x,word y,byte color)
|
void Pixel_wide (word x,word y,byte color)
|
||||||
/* Affiche un pixel de la color aux coords x;y à l'écran */
|
/* Affiche un pixel de la color aux coords x;y à l'écran */
|
||||||
{
|
{
|
||||||
|
|||||||
@ -31,6 +31,10 @@
|
|||||||
#define ZOOMX 4
|
#define ZOOMX 4
|
||||||
#define ZOOMY 2
|
#define ZOOMY 2
|
||||||
|
|
||||||
|
#ifdef __VBCC__
|
||||||
|
#define __attribute__(w)
|
||||||
|
#endif
|
||||||
|
|
||||||
void Pixel_wide2 (word x,word y,byte color)
|
void Pixel_wide2 (word x,word y,byte color)
|
||||||
/* Affiche un pixel de la color aux coords x;y à l'écran */
|
/* Affiche un pixel de la color aux coords x;y à l'écran */
|
||||||
{
|
{
|
||||||
|
|||||||
2
setup.c
2
setup.c
@ -49,7 +49,7 @@ int Create_ConfigDirectory(char * config_dir)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__macosx__) || defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__)
|
#if defined(__macosx__) || defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__) && !defined(__VBCC__)
|
||||||
#define ARG_UNUSED __attribute__((unused))
|
#define ARG_UNUSED __attribute__((unused))
|
||||||
#else
|
#else
|
||||||
#define ARG_UNUSED
|
#define ARG_UNUSED
|
||||||
|
|||||||
@ -17,6 +17,8 @@
|
|||||||
along with Grafx2; if not, see <http://www.gnu.org/licenses/>
|
along with Grafx2; if not, see <http://www.gnu.org/licenses/>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "struct.h"
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
///@file special.h
|
///@file special.h
|
||||||
/// Editor functions that can be hooked to a keyboard shortcut, but don't have
|
/// Editor functions that can be hooked to a keyboard shortcut, but don't have
|
||||||
@ -45,4 +47,4 @@ void Zoom_set(int index);
|
|||||||
|
|
||||||
void Display_stored_brush_in_window(word x,word y,int number);
|
void Display_stored_brush_in_window(word x,word y,int number);
|
||||||
void Store_brush(int index);
|
void Store_brush(int index);
|
||||||
byte Restore_brush(int index);
|
byte Restore_brush(int index);
|
||||||
|
|||||||
16
struct.h
16
struct.h
@ -70,12 +70,14 @@ typedef void (* Func_draw_brush) (byte *,word,word,word,word,word,word,byte,word
|
|||||||
typedef void (* Func_draw_list_item) (word,word,word,byte);
|
typedef void (* Func_draw_list_item) (word,word,word,byte);
|
||||||
|
|
||||||
/// A set of RGB values.
|
/// A set of RGB values.
|
||||||
|
#pragma pack(1)
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
byte R; ///< Red
|
byte R; ///< Red
|
||||||
byte G; ///< Green
|
byte G; ///< Green
|
||||||
byte B; ///< Blue
|
byte B; ///< Blue
|
||||||
}__attribute__ ((__packed__)) T_Components, T_Palette[256]; ///< A complete 256-entry RGB palette (768 bytes).
|
} T_Components, T_Palette[256]; ///< A complete 256-entry RGB palette (768 bytes).
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
/// A normal rectangular button in windows and menus.
|
/// A normal rectangular button in windows and menus.
|
||||||
typedef struct T_Normal_button
|
typedef struct T_Normal_button
|
||||||
@ -225,13 +227,15 @@ typedef struct
|
|||||||
byte Mode; ///< Shade mode: Normal, Loop, or No-saturation see ::SHADE_MODES
|
byte Mode; ///< Shade mode: Normal, Loop, or No-saturation see ::SHADE_MODES
|
||||||
} T_Shade;
|
} T_Shade;
|
||||||
|
|
||||||
|
#pragma pack(1) // is it useful ?
|
||||||
/// Data for one fullscreen video mode in configuration file. Warning, this one is saved/loaded as binary.
|
/// Data for one fullscreen video mode in configuration file. Warning, this one is saved/loaded as binary.
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
byte State; ///< How good is the mode supported. 0:Good (white) 1:OK (light) 2:So-so (dark) 4:User-disabled (black); +128 => System doesn't support it at all.
|
byte State; ///< How good is the mode supported. 0:Good (white) 1:OK (light) 2:So-so (dark) 4:User-disabled (black); +128 => System doesn't support it at all.
|
||||||
word Width; ///< Videomode width in pixels.
|
word Width; ///< Videomode width in pixels.
|
||||||
word Height;///< Videomode height in pixels.
|
word Height;///< Videomode height in pixels.
|
||||||
} __attribute__((__packed__)) T_Config_video_mode;
|
} T_Config_video_mode;
|
||||||
|
|
||||||
|
|
||||||
/// Header for gfx2.cfg. Warning, this one is saved/loaded as binary.
|
/// Header for gfx2.cfg. Warning, this one is saved/loaded as binary.
|
||||||
typedef struct
|
typedef struct
|
||||||
@ -241,7 +245,9 @@ typedef struct
|
|||||||
byte Version2; ///< Minor version number (ex: 0)
|
byte Version2; ///< Minor version number (ex: 0)
|
||||||
byte Beta1; ///< Major beta version number (ex: 96)
|
byte Beta1; ///< Major beta version number (ex: 96)
|
||||||
byte Beta2; ///< Major beta version number (ex: 5)
|
byte Beta2; ///< Major beta version number (ex: 5)
|
||||||
} __attribute__((__packed__)) T_Config_header;
|
} T_Config_header;
|
||||||
|
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
/// Header for a config chunk in for gfx2.cfg. Warning, this one is saved/loaded as binary.
|
/// Header for a config chunk in for gfx2.cfg. Warning, this one is saved/loaded as binary.
|
||||||
typedef struct
|
typedef struct
|
||||||
@ -250,13 +256,15 @@ typedef struct
|
|||||||
word Size; ///< Size of the configuration block that follows, in bytes.
|
word Size; ///< Size of the configuration block that follows, in bytes.
|
||||||
} T_Config_chunk;
|
} T_Config_chunk;
|
||||||
|
|
||||||
|
#pragma pack(1)
|
||||||
/// Configuration for one keyboard shortcut in gfx2.cfg. Warning, this one is saved/loaded as binary.
|
/// Configuration for one keyboard shortcut in gfx2.cfg. Warning, this one is saved/loaded as binary.
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
word Number; ///< Indicates the shortcut action. This is a number starting from 0, which matches ::T_Key_config.Number
|
word Number; ///< Indicates the shortcut action. This is a number starting from 0, which matches ::T_Key_config.Number
|
||||||
word Key; ///< Keyboard shortcut: SDLK_something, or -1 for none
|
word Key; ///< Keyboard shortcut: SDLK_something, or -1 for none
|
||||||
word Key2; ///< Alternate keyboard shortcut: SDLK_something, or -1 for none
|
word Key2; ///< Alternate keyboard shortcut: SDLK_something, or -1 for none
|
||||||
} __attribute__((__packed__)) T_Config_shortcut_info;
|
} T_Config_shortcut_info;
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
/// This structure holds all the settings saved and loaded as gfx2.ini.
|
/// This structure holds all the settings saved and loaded as gfx2.ini.
|
||||||
typedef struct
|
typedef struct
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user