1809 Commits

Author SHA1 Message Date
Thomas Bernard
ccf3e6a77f Change Load_picture() prototype to allow loading of palette
the change matches what is done with Save_picture()
2018-01-25 22:55:27 +01:00
Adrien Destugues
f3bf217bb6 Fix doxygen warnings. 2018-01-25 07:39:28 +01:00
Adrien Destugues
837773ea1d Fix build with gcc2
Partial initializers are not supported. This is not needed anyway, the
variable will be in .bss so it will be cleared to 0 by default.
2018-01-24 19:51:33 +01:00
Thomas Bernard
b2898ed7f1 clean global.h 2018-01-22 22:12:47 +01:00
Thomas Bernard
5ab93eb7fd Great simplification of Main/Spare page flipping 2018-01-22 21:47:44 +01:00
Thomas Bernard
353b494617 move tilemap data to T_Document.
Also merge Disable_main_tilemap + Disable_spare_tilemap
=> Disable_tilemap()
2018-01-22 20:59:49 +01:00
Thomas Bernard
92620bb4ba merge Upload_infos_page_main() / Upload_infos_page_spare() => Upload_infos_page() 2018-01-22 20:34:29 +01:00
Thomas Bernard
297b653304 input.c: Simplify code in Color_cycling() 2018-01-22 16:31:23 +01:00
Thomas Bernard
a53d6da6ea Add visible_image and backups to the T_Document structure 2018-01-22 16:16:39 +01:00
Thomas Bernard
8ae651c75f put common fields for Main and Spare page in a T_Document structure 2018-01-22 14:46:44 +01:00
Thomas Bernard
e9b4392691 add GFX2_GLOBAL where forgotten.
So we avoid to have some so called "common" C symbols.
2018-01-22 14:46:06 +01:00
Thomas Bernard
350ca22f1e Restore the Selector_filename in case of Bookmark error.
There was a small bug in the code. To reproduce :
1- select a file to preview
2- Select a boggus bookmark, get the RED flash => OK
3- Click Load. RED Flash instead of loading the selected file

now the "selected file" (Selector_filename) is properly restored
2018-01-22 13:46:13 +01:00
Thomas Bernard
aeca7af074 Add comment about Current_palette 2018-01-22 13:46:13 +01:00
Thomas Bernard
08e3c6bebf Fix issue 46 : part 2
in Error(0) the palette was not properly restored
as it was always restored to the Main_palette.
Now we really restore the right palette !

Also clarified/simplified the change directory code in case of error.

http://pulkomandy.tk/projects/GrafX2/ticket/46
2018-01-22 13:46:13 +01:00
Thomas Bernard
e078b3afe1 fix issue 46 "ghost cursors"
see http://pulkomandy.tk/projects/GrafX2/ticket/46
One has to be with the cursor shown before calling Error(0)
2018-01-22 13:46:13 +01:00
Thomas Bernard
7b69b171ff Fix invalid http://grafx2.org url to grafx2.tk 2018-01-22 11:35:12 +01:00
Thomas Bernard
afb1feb75d PCX : the CGA "color burst" bit is not taken into account by Paintbrush 3.11 2018-01-20 11:56:03 +01:00
Thomas Bernard
34c7f96535 Better PCX support
support 3 plane 8 colors files
Correctly set CGA palette for 1bpp and 2bpp images
2018-01-19 16:22:53 +01:00
Thomas Bernard
3271d6ba8d Fix BMP loading for big endian machines (68k, PPC)
also removed some debug printf
2018-01-19 10:14:14 +01:00
Thomas Bernard
1232675b59 Save_ICO()
With transparency data
2018-01-18 11:20:51 +01:00
Thomas Bernard
ad9306498f Add support for 2bpp BMP's (Win CE)
File extension is usually 2bp (ic2 for icons)
2018-01-18 00:59:00 +01:00
Thomas Bernard
d0d0b64ecf Support transparency in ICO files with 256 colors or less 2018-01-18 00:43:36 +01:00
Thomas Bernard
2a04e363be fix for loading CUR files 2018-01-17 17:54:28 +01:00
Thomas Bernard
674fc76649 Fix minor issues 2018-01-17 17:31:32 +01:00
Thomas Bernard
d9ca2e1092 Load .ico files containing PNG images 2018-01-17 10:21:34 +01:00
Thomas Bernard
37a5a0a85c Splitted Load_PNG to allow usage by Load_ICO
Introduces Load_PNG_Sub()
some .ico contain PNG images
2018-01-17 10:19:58 +01:00
Thomas Bernard
c2486ed629 Support of .ICO file loading
only loading the biggest icon

see http://pulkomandy.tk/projects/GrafX2/ticket/69
2018-01-17 00:54:10 +01:00
Thomas Bernard
c2c36849b5 Refactor of Load_BMP() + support of OS/2 BMP 2018-01-17 00:53:32 +01:00
Thomas Bernard
ee11079b86 Count colors when loading True color pictures
If the count is <= 256 there is no need to execute the expensive
color quantization process
2018-01-16 16:27:30 +01:00
Thomas Bernard
753aaf3422 Add Fast Zoom In & Out functions.
Shift +/-  or  Shift Mouse Wheel

http://pulkomandy.tk/projects/GrafX2/ticket/28
2018-01-12 10:33:19 +01:00
Thomas BERNARD
e36cff0fef Hide cursor if we failed to set our 1 pix transparent cursor
SDL_ShowCursor() can take SDL_ENABLE / SDL_DISABLE or SDL_QUERY
2018-01-10 20:51:11 +01:00
Thomas Bernard
2928a16e41 Also save visible layers for spare page
see http://pulkomandy.tk/projects/GrafX2/ticket/25#comment:3
2018-01-03 05:13:51 +01:00
Thomas Bernard
8a67da69cc Right click on a layer toggle SOLO / previous state
Previously, if right clicking the current layer which is the only
one shown, then all layers are shown.

Now right clicking twice on the current layer return to the same
state.

see http://pulkomandy.tk/projects/GrafX2/ticket/25
2017-12-29 17:17:31 +01:00
Thomas Bernard
cad9aa53fd Switch to Unix end of line 2017-12-29 17:17:31 +01:00
Thomas Bernard
fb197cc0d9 op_c.c: handle memory allocation errors in CS_Set() 2017-12-25 16:08:29 +01:00
Thomas Bernard
d7179f7cba fix Optimize_palette() for precisions different than 8 8 8
do the right shifts instead of 16 / 8
2017-12-25 15:55:14 +01:00
Thomas Bernard
4b0878c079 Quantization: use population split 2017-12-25 15:46:31 +01:00
Thomas Bernard
b9bdf68ee6 Quantization : sort clusters by diagonal and not volume
There is a #define which enables to return to the previous algorithm
2017-12-23 14:53:50 +01:00
Thomas Bernard
5d47a76a50 introduce GRAFX2_QUANTIZE_CLUSTER_POPULATION_SPLIT macro to change cluster splitting method 2017-12-23 14:26:08 +01:00
Thomas Bernard
9ec4adae80 Color quantization : use another cluster spliting (by volume instead of population)
see http://pulkomandy.tk/projects/GrafX2/ticket/26
2017-12-23 04:36:28 +01:00
Thomas Bernard
acf65c31d2 Load additional fonts from the ~/.config/grafx2/fonts directory
Load in fact from the /fonts/ subdirectory of the config directory,
wherever it is (it depends a lot on the platform)

under WIN32 it is %APPDATA%/GrafX2/fonts
MacOS ~/Library/Preferences/com.googlecode.grafx2/fonts
etc.

see http://pulkomandy.tk/projects/GrafX2/ticket/56
2017-12-20 19:28:54 +01:00
Thomas Bernard
589a84fd3d Fix use of FontConfig on non linux platforms (FreeBSD, etc.)
just define USE_FC in the Makefile to have text.c compiled with Fontconfig support
2017-12-20 19:28:46 +01:00
Adrien Destugues
c65dc04194 Update CONTRIBUTING.md
Fix URL of bugtracker, mention where the gitlab home is, and add hyperlinks.
2017-12-20 10:32:24 +00:00
Adrien Destugues
26c6d12d09 Add license
GPL v2, without the "any later version" clause (sorry FSF, I don't want
to accept licences you didn't even write yet).
2017-12-20 10:10:37 +00:00
Adrien Destugues
0d24f95ee3 Add contribution guide 2017-12-20 10:08:42 +00:00
Thomas Bernard
ee322ed437 Fix GIF save - last byte
The last byte was not saved for sure, depending on the codesize.
Also if the codesize was big (12 bits which is the max)
in some case an additional 0 byte was store (which is harmless but
useless)

This bug only appears if the bit per code are < 8
which is possible since commit 834050c2c4cf6ed87f3192fa31f8ae13a704a5b5
2017-12-19 17:17:02 +01:00
Thomas Bernard
834050c2c4 Optimize GIF size by using only the number of bits needed in LZW codes
It was always storing images in 8bpp whatever the values of pixels are,
so the minimum LZW code size was 9 bits.

Now the bpp is chosen according to the maximum pixel value.

Please note that the Whole 256 color palette is still stored entirely,
so this commit doesn't change the user experience in anyway, except saving
a few bytes :)
2017-12-19 10:00:08 +01:00
Thomas Bernard
51bb3057a3 add a "root" Makefile 2017-09-15 21:50:43 +02:00
Thomas Bernard
d6024c529f add tgz and Grafx2.app to .gitignore 2017-08-08 18:31:22 +02:00
Thomas Bernard
99d135fdd5 sdlscreen.c : removed unused arg warning in Update_rect() 2017-08-08 18:29:06 +02:00