Sam Hocevar
9ee841240f
Implement conio.h's getche() and move cursor to top right corner after
a call to clrscr().
15 yıl önce
Sam Hocevar
823b59a7fa
Make caca_printf(), caca_vprintf() and caca_put_str() return the number of
printed cells instead of always returning 0. This is handy if we want to
advance a cursor after each printf() call.
15 yıl önce
Sam Hocevar
962f47b906
Implement conio.h's kbhit().
15 yıl önce
Sam Hocevar
ea8d3086d6
Add sound(), nosound() and delay() to the conio.h emulation. Even though
they're not actually from that header, they're often used together.
15 yıl önce
Pascal Terjan
52a0decd07
* Fix a segfault in rotate_180 on 0 sized canvas
15 yıl önce
Sam Hocevar
104c5a0c5b
Start implementing a full <conio.h> replacement with a libcaca backend.
15 yıl önce
Sam Hocevar
1f5518f842
Rename caca_get_cursor_x() and caca_get_cursor_y() to caca_wherex() and
caca_wherey(), in order to match the old <conio.h> naming scheme.
15 yıl önce
Sam Hocevar
4648ab11aa
Implement caca_vprintf() to allow third-party variadic functions to call us.
15 yıl önce
Sam Hocevar
60b44cc5be
Show how we could optimise dirty rectangle handling in a box fill. Disabled
for now because it does not work with fullwidth characters.
15 yıl önce
Sam Hocevar
f5598e7b4f
I forgot to initialise dirty_disabled in the canvas constructor.
15 yıl önce
Sam Hocevar
5269cad56c
Allow to temporarily disable dirty rectangle handling. This allows for huge
speedups when the calling application knows the dirty rectangle covered by
a complex operation.
15 yıl önce
Sam Hocevar
644ee4a78a
Coding style: remove tabs and trailing spaces.
15 yıl önce
Sam Hocevar
4f7081153e
Do not add a dirty rectangle at the cursor's position. It's up to the
display driver to clean up its shit. Fixed X11 driver accordingly.
15 yıl önce
Sam Hocevar
69d8bbeb08
More complex dirty rectangle merging strategy. It's a lot slower in some
cases, but that can be fixed.
15 yıl önce
Sam Hocevar
ed360faabe
Add a comment to the ncurses driver to remember fix the GCC warning.
15 yıl önce
Sam Hocevar
33d2bc2092
Update the Win32 and Win64 ports.
15 yıl önce
Pascal Terjan
bd1c1cdda6
* Inform code reader that current algorithm is wrong
15 yıl önce
Sam Hocevar
b0a88ddd01
Do not smooth the render time; the calling application can do it.
15 yıl önce
Sam Hocevar
6b22ab776c
Add a null driver that does absolutely nothing.
15 yıl önce
Sam Hocevar
1d60711ac4
Mark the whole canvas as dirty when a dirty rectangle aware driver is
attached to it.
15 yıl önce
Sam Hocevar
10719139e6
Store dirty rectangles in a structure list. For now there is still only
one dirty rectangle, but this is the first step to improvement.
15 yıl önce
Pascal Terjan
4bd79baf96
* Add dirty rectangles when moving cursor
15 yıl önce
Pascal Terjan
1f79729288
* When blitting, only add dirty rectangles on changed
lines, or on changed chars if we have a mask
15 yıl önce
Sam Hocevar
99a266a83b
Fix caca_get_char() documentation, courtesy of Romain Bignon.
15 yıl önce
Pascal Terjan
3e1a1d2679
* Add rotated epsilon
15 yıl önce
Pascal Terjan
de5be87d0e
Don't redraw background for more than the dirty rectangle in x11 driver, we will not redraw foreground there
15 yıl önce
Sam Hocevar
162613b630
caca_put_char(): only add a dirty rectangle if the paster character is
different from what was already there.
15 yıl önce
Pascal Terjan
ac9b1074b4
Fix limits settings in area export
15 yıl önce
Sam Hocevar
d3ef2bbecd
Add caca_export_area_to_memory() to export only a selected part of the
current canvas. This is useful to export dirty rectangles. Accordingly,
add caca_import_area_from_memory() and caca_import_area_from_file().
15 yıl önce
Sam Hocevar
ea99175a2f
Change the dirty rectangle API once again so that calling applications get
a more natural (x,y,w,h) 4-tuple to handle.
15 yıl önce
Sam Hocevar
11428406c1
Split import.c and export.c to create a new text.c codec file in order
to keep source files under 1,000 lines of code.
15 yıl önce
Pascal Terjan
d1db2df568
Revert r3478
15 yıl önce
Sam Hocevar
95811ced2d
Manually fix Visual Studio files so that builds do not spew
their crap all over the place. There is still caca-sharp/obj
that it insists on creating (reported as Connect ID 301965).
15 yıl önce
Sam Hocevar
0c7fd89e3a
Add dirty rectangle support to the ncurses and VGA drivers.
15 yıl önce
Sam Hocevar
42a5c2bf69
Increased the autorepeat delay in the ncurses and SLang drivers. Now that
we have dirty rectangles, fast autorepeat becomes perfectly usable.
15 yıl önce
Sam Hocevar
3338776b44
Fix a few DOS compilation warnings.
15 yıl önce
Sam Hocevar
222e165d21
Fix dirty rectangle handling in the X11 and SLang drivers.
15 yıl önce
Pascal Terjan
33f2264bcd
Import/export dirty rectangles
15 yıl önce
Sam Hocevar
1fe8a8702a
A lot of documentation updates here and there, including bugfixes dating
back to the libcucul merge.
15 yıl önce
Sam Hocevar
dd48fb62b3
Optimise the dirty rectangle handling by keeping track of the number of
currently dirty rectangles.
15 yıl önce
Sam Hocevar
a6b98c2518
Change the dirty rectangle API so that it can handle several rectangles. The
inner implementation still only handles one dirty rectangle, but this way
we can prepare supporting applictions for the future.
15 yıl önce
Pascal Terjan
ee3018643d
Only redraw empty rectangles in slang driver
15 yıl önce
Pascal Terjan
27fffbb33c
Fix empty dirty rectangles detection
15 yıl önce
Pascal Terjan
44f5d172f0
* Only redraw dirty rectangle in x11 driver
15 yıl önce
Sam Hocevar
1fe07f325e
Fixed libcaca and the Visual Studio solution so that it works
on Win64, including the .NET projects.
15 yıl önce
Sam Hocevar
fc193a4b99
Fix a few implicit cast related warnings on VC++.
15 yıl önce
Sam Hocevar
3b3bf0160d
Fix a few dirty rectangle bugs found with the unit tests. Let that be a
lesson to you: unit tests are good.
15 yıl önce
Sam Hocevar
3a6f4323ec
Finish the dirty rectangle architecture. They are now reliable in the sense
that anything outside the dirty rectangle is guaranteed to be unchanged, but
we currently mark far too many cells as dirty. This must be optimised.
15 yıl önce
Sam Hocevar
a69ddfcd10
Factor code from caca_draw_cp437_box() and caca_draw_thinbox_box().
15 yıl önce
Sam Hocevar
a94a7e912c
Set up the architecture for dirty rectangles.
Dirty rectangles are an upcoming optimisation that will tell the output
drivers which portion of the canvas has been really modified since the
last blit.
15 yıl önce