1886 Commits

Author SHA1 Message Date
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
Thomas Bernard
031f87ad2c remove "warning: ISO C90 forbids mixed declarations and code" 2017-08-08 18:09:42 +02:00
Thomas Bernard
1b9fb8514d mountlist.c: remove fstype_to_string() function when not needed 2017-08-08 18:06:07 +02:00
Thomas Bernard
642c6af8b6 mountlist.c: define free_then_fail: label only if need 2017-08-08 18:06:07 +02:00
Thomas Bernard
a454ba6e7c mountlist.c: remove fsp_to_string() unused function 2017-08-08 18:06:06 +02:00
Thomas Bernard
f84ca359d4 fix compilation of Native_filesel() with non win32/non linux platforms
Implementations would need to be added when Native_filesel() will be used for real
2017-08-08 18:06:06 +02:00
Adrien Destugues
1d2cfc2a8d ZX: also apply brightness constraint
There may only be one brightness per cell: either two light, or two dark
colors.
2017-06-28 08:24:32 +02:00
Adrien Destugues
f2b04e08d0 Constraint modes: Thomson, ZX 2017-06-23 22:20:08 +02:00
Adrien Destugues
9e55b2d995 Enable -Werror only for Haiku for now.
It is a bit early to have it enabled for all Linux variants out there.
2017-06-23 22:20:08 +02:00
Adrien Destugues
0b6e782f74 Support Amstrad CPC mode EGX2 2017-06-23 22:20:08 +02:00
Adrien Destugues
309538c190 Helpfile: some cleanup and updates to credits
- New file formats
- Remove postal addresses (who is going to use these, anyway?)
- Fix yet another reference to the google code website
2017-05-30 21:39:42 +02:00
Adrien Destugues
f80bb320bc Use ~/.config/grafx2 when the XDG_CONFIG_HOME is not set
Follow the freedesktop spec.

Thanks to skrzyp for noting this important detail.
2017-05-08 09:43:47 +02:00
Adrien Destugues
a321c4c785 Fix building with MinGW from Linux 2017-05-08 09:33:01 +02:00
Adrien Destugues
317dc5c667 Move settins to XDG_CONFIG_HOME 2017-05-08 09:32:25 +02:00
Adrien Destugues
aef77744e1 EGX mode for CPC
In this custom mode, odd lines use MODE 0 (wide pixels, 16 colors), and
even lines use MODE 1 (square pixels, 4 colors).

- Add a settings window to the 8-bit effect where you can chose what you
want to draw
- Add the customizations required to make it work in graph.c
- Tweak some other places so it is easier to add other modes later on.
- Groundwork for some more modes: EGX2, ZX spectrum, Game Boy color.
2017-05-06 22:22:52 +02:00
Adrien Destugues
f04691145b Use Gitlab CI to generate Linux images.
Automatically checks that the code builds fine on Linux
Export the zip with the binaries
2017-05-06 16:03:42 +02:00
Adrien Destugues
5b6095f0bc Fix all warnings and enable -Werror
mostly unused variables and broken indentation.
2017-05-06 15:13:50 +02:00
Adrien Destugues
c0e625fdef Fix the Linux build. 2017-05-06 14:57:25 +02:00
Adrien Destugues
a8c7cdff15 Update copyright year in headers. 2017-05-01 20:41:46 +02:00
Adrien Destugues
23eded3e09 Fix endless event loop in Haiku
SDL for Haiku always send a WM size change at init. We did catch that it
would not cause any SDL mode set, so we ignored it, but we forgot to
reset the resize width and height. So each run of the event loop would
try to resize the window again and again to the same size.

Thanks to event throttling this was not very noticeable, the main
consequence was that some stuff was reset and for example the tooltips
in the status bar were not showing at all.
2017-05-01 20:34:05 +02:00
Adrien Destugues
7be396a9cf Splash screen: fix homepage and copyright
* 10 years since I started porting GrafX2 to SDL!
* 20 years since Sunset Design wrote the first lines of code!
* To celebrate this, I'm finally setting up a real website!
2017-05-01 13:57:51 +02:00
Adrien Destugues
cf56a34992 Update some things after the switch to git.
- Do not use svnversion to find the version, instead use a revision
  count from git. As a result, the version number jumps back, however,
  so we should have a 2.5 release soon!
- Fix some URLs pointing to either the svn repo,
  or even to google code (!).
2017-03-23 07:29:26 +01:00
Adrien Destugues
903701727d Tweak gitignore a little
- Mainly because it didn't ignore the generated executable.
2017-03-21 21:57:50 +01:00
Adrien Destugues
092e092c18 Finish tweaking layout of palette settings window. 2017-03-21 21:55:55 +01:00