6416 Commits

Author SHA1 Message Date
Kovid Goyal
d4991424f9
Set the python thread switch interval to forever 2017-09-15 10:45:11 +05:30
Kovid Goyal
1684bda1e9
Better thread name 2017-09-15 10:45:11 +05:30
Kovid Goyal
e8b5a72c96
Remove GIL management code since it is no longer needed 2017-09-15 10:45:11 +05:30
Kovid Goyal
7f180ad3d9
Do not use the python threading module
Threading in python imposes significant overhead.
Instead create the thread using pthreads directly
2017-09-15 10:45:11 +05:30
Kovid Goyal
94c4c00859
Move signal handling code into the C module 2017-09-15 10:45:11 +05:30
Kovid Goyal
1308bbac2d
Move creation of wakeup fds to c module 2017-09-15 10:45:11 +05:30
Kovid Goyal
76890a2b71
Do not perform any python API calls in the I/O thread 2017-09-15 10:45:11 +05:30
Kovid Goyal
2c8f3b6d98
Remove unnecessary extra lock/unlock of children_mutex 2017-09-15 10:45:11 +05:30
Kovid Goyal
0e46994d0a
Restore repaint_delay 2017-09-15 10:45:11 +05:30
Kovid Goyal
44650c5723
Make reading into the screen read buffer more efficient 2017-09-15 10:45:11 +05:30
Kovid Goyal
234bb07b67
Initial attempt at moving all threading code into a single file 2017-09-15 10:45:10 +05:30
Kovid Goyal
fea79878fa
Make the monotonic() function available everywhere 2017-09-15 10:45:10 +05:30
Kovid Goyal
0365828a5b
Remove all python threading related code 2017-09-15 10:45:10 +05:30
Kovid Goyal
fa30a95b46
... 2017-09-15 10:45:10 +05:30
Kovid Goyal
f44d56b116
Ensure GIL is not released when rendering sprites 2017-09-15 10:45:10 +05:30
Kovid Goyal
6127d2d122
Make the sprite map globally accessible from C code as well as python code
The lock was removed as the Python GIL is sufficient to serialize access
to the SpriteMap structure.
2017-09-15 10:45:10 +05:30
Kovid Goyal
4feff2e2da
Fix rendering of strikethrough not working 2017-09-15 10:45:10 +05:30
Kovid Goyal
8624dbac2c
Sigh, stupid OpenGL
Apparently glGetUniformIndices has different declarations on different
systems.
2017-09-15 10:45:10 +05:30
Kovid Goyal
4c0cf93562
Fix tab bar not rendering because of selection handling changes 2017-09-15 10:45:10 +05:30
Kovid Goyal
d12573a67d
Dont send the color table to the GPU on every frame 2017-09-15 10:45:09 +05:30
Kovid Goyal
d7b433f6b7
API for Uniform Block Objects 2017-09-15 10:45:09 +05:30
Kovid Goyal
b1168f6c6c
Handle zero timeout correctly 2017-09-15 10:45:09 +05:30
Kovid Goyal
91e263cabb
Fix sub-millisecond and no event waits not working 2017-09-15 10:45:09 +05:30
Kovid Goyal
ed15f2f97e
Get the layout of the Cell structure 2017-09-15 10:45:09 +05:30
Kovid Goyal
6689595277
Dont use Py_UCS4 for char_type 2017-09-15 10:45:09 +05:30
Kovid Goyal
34f946fd98
Move rendering of selection to GPU 2017-09-15 10:45:09 +05:30
Kovid Goyal
a5bec84554
... 2017-09-15 10:45:09 +05:30
Kovid Goyal
0fae3e1b10
... 2017-09-15 10:45:09 +05:30
Kovid Goyal
a56e1296fd
Refactor the tab bar into its own class
Also ensure that Screen APIs are only used in the child thread in the
tab bar
2017-09-15 10:45:09 +05:30
Kovid Goyal
acdeaaeda5
Move the border shaders into their own files 2017-09-15 10:45:08 +05:30
Kovid Goyal
a44e3a3a50
Ensure line numbers reported by the GLSL compiler are correct 2017-09-15 10:45:08 +05:30
Kovid Goyal
db40445572
Do color mapping on the GPU 2017-09-15 10:45:08 +05:30
Kovid Goyal
1d888c9194
Centralise color management into ColorProfile 2017-09-15 10:45:08 +05:30
Kovid Goyal
b50eaa9cbb
ColorProfile should belong to Screen 2017-09-15 10:45:08 +05:30
Kovid Goyal
fe764ab6b6
oops 2017-09-15 10:45:08 +05:30
Kovid Goyal
bab4680828
... 2017-09-15 10:45:08 +05:30
Kovid Goyal
564010c7cd
Migrate history.c 2017-09-15 10:45:08 +05:30
Kovid Goyal
052fd46ff9
Migrate sprites.c 2017-09-15 10:45:08 +05:30
Kovid Goyal
4fd8c7cfaa
DRYer 2017-09-15 10:45:08 +05:30
Kovid Goyal
37f0cf86d0
Migrated line.c 2017-09-15 10:45:07 +05:30
Kovid Goyal
0cbd3a2820
Start work on using a struct for the cell
Should eventually allow the screen buf to be sent directly to the GPU
without a serialization step.

Migrates line-buf.c
2017-09-15 10:45:07 +05:30
Kovid Goyal
af3c89d79f
oops 2017-09-15 10:45:07 +05:30
Kovid Goyal
a1d75eb00d
Use a function pointer to avoid a branch in loop() 2017-09-15 10:45:07 +05:30
Kovid Goyal
6176607ac4
Initial stab at switching to poll() instead of select()
Also avoid python code in the child monitoring inner loop
2017-09-15 10:45:07 +05:30
Kovid Goyal
40254625d9
Fix timers not being replaced 2017-09-15 10:45:07 +05:30
Kovid Goyal
29b16d0856
Fix timers not being re-sorted on replace 2017-09-15 10:45:07 +05:30
Kovid Goyal
ff72b1f96f
Limit sprite co-ordinates to fit in uint16_t 2017-09-15 10:45:07 +05:30
Kovid Goyal
a429bcbb22
Dont use the glfw timer function as it requires glfwInit 2017-09-15 10:45:07 +05:30
Kovid Goyal
3c7305b93c
... 2017-09-15 10:45:07 +05:30
Kovid Goyal
f9b1a71edd
Move the timers implementation to C
It is used int he hot loop for monitoring the child process
2017-09-15 10:45:06 +05:30