Commit Graph

56 Commits

Author SHA1 Message Date
Kovid Goyal
f35bf7f1ba Move buffer management into its own class 2017-08-21 22:53:13 +05:30
Kovid Goyal
be06669e8f Ensure we dont exceed GL_MAX_TEXTURE_BUFFER_SIZE 2017-08-21 20:53:02 +05:30
Kovid Goyal
05f5a05c20 Ensure sprite map size tracking is always correct 2017-08-21 17:39:30 +05:30
Kovid Goyal
7e79aac275 Fix incorrect tracking of previous buffer sizes to avoid re-allocs 2017-08-21 17:12:46 +05:30
Kovid Goyal
0a21819e16 DRYer 2017-08-21 16:53:04 +05:30
Kovid Goyal
fe3e51a00d Move the GLSL shaders into their own files 2017-08-21 16:39:34 +05:30
Kovid Goyal
21874339f1 Remove un-needed binding of the sprite_map buffer 2017-08-21 15:51:55 +05:30
Kovid Goyal
4f22fcdaac Code to verify buffer uploads are working 2017-08-21 15:30:50 +05:30
Kovid Goyal
0bbea6812e Avoid unnecessary reallocs for cell data
Only re-allocate when the buffer size changes
2017-08-21 14:56:29 +05:30
Kovid Goyal
101a50b0ff Do not use GL_ARB_texture_buffer_object_rgb32
This is not available on macOS using Intel graphics cards
2017-08-21 12:46:09 +05:30
Kovid Goyal
421ae6d289 Ensure texture buffer is bound before uploading to it 2017-02-24 14:35:02 +05:30
Kovid Goyal
063ec7dc02 Fallback implementation for glCopyImageSubData
OS X is missing this function so we fallback to a very slow,
GPU->CPU->GPU roundtrip. Fortunately this is needed only rarely so it
should not have a noticeable performance imapct. Le bubbling sigh!
2017-01-11 23:36:43 +05:30
Kovid Goyal
41c63917c8 ... 2016-12-10 09:41:25 +05:30
Kovid Goyal
b3c9763519 ... 2016-12-10 09:38:18 +05:30
Kovid Goyal
0a13899571 Ensure Sprites.render_cell() always returns a valid cell 2016-12-10 09:30:30 +05:30
Kovid Goyal
5f77e486f0 Split up the fonts module into a package 2016-12-07 11:16:10 +05:30
Kovid Goyal
319f06931a Fix rendering when multiple windows are visible 2016-12-05 08:28:26 +05:30
Kovid Goyal
b1e39dac02 Start work on rendering window borders 2016-11-28 13:38:13 +05:30
Kovid Goyal
b5000c2ec0 Refactor to support multiple windows/tabs 2016-11-26 17:40:28 +05:30
Kovid Goyal
aca53d4e2b Rendering of underline/strikethrough 2016-11-23 09:01:07 +05:30
Kovid Goyal
e53c3076ef Pre-render the sprites for blank/underline/strikethrough 2016-11-22 11:50:28 +05:30
Kovid Goyal
c8a71ef5f8 Move the update_cell_data() inner loop to native code 2016-11-12 10:57:06 +05:30
Kovid Goyal
470d88a950 Speed up the update_cell_data inner loop 2016-11-10 23:20:42 +05:30
Kovid Goyal
8f8e9baedc Remove the no longer needed data types module 2016-11-10 11:07:39 +05:30
Kovid Goyal
b3cc7ae1d5 ... 2016-11-03 21:34:49 +05:30
Kovid Goyal
aa1302b699 Set texture interpolation to nearest to prevent fringing 2016-11-03 21:26:15 +05:30
Kovid Goyal
1e04b8fdca Explicitly free sprites on normal program termination 2016-11-03 19:43:11 +05:30
Kovid Goyal
58a7331b9f Get rid of PyOpenGL 2016-11-03 16:52:47 +05:30
Kovid Goyal
436fedccea Finish OpenGL shader bindings 2016-11-03 16:34:01 +05:30
Kovid Goyal
99f788ead5 More OpenGL bindings 2016-11-03 15:14:59 +05:30
Kovid Goyal
5d77499cb1 OpenGL bindings for programs 2016-11-03 13:15:30 +05:30
Kovid Goyal
06b42a7e1c More OpenGL bindings 2016-11-03 10:30:35 +05:30
Kovid Goyal
a00e7fbed8 Fix bold fonts not being used 2016-10-30 22:13:24 +05:30
Kovid Goyal
93872f8319 Handle cell size changing in the sprites class 2016-10-30 22:05:25 +05:30
Kovid Goyal
2de8c70bb8 Optimize the hot loop 2016-10-30 17:19:37 +05:30
Kovid Goyal
ade8faa345 Start work on implementing the char grid 2016-10-30 13:06:13 +05:30
Kovid Goyal
176a548b99 ... 2016-10-29 20:23:49 +05:30
Kovid Goyal
fabdebfd89 Check for required extensions 2016-10-28 12:32:55 +05:30
Kovid Goyal
88a9d8fb8a Use instanced rendering for the sprites as well 2016-10-28 12:08:52 +05:30
Kovid Goyal
5791700de7 Go back to using glTexStorage as it is commonly present via extension and higher performance 2016-10-28 07:33:15 +05:30
Kovid Goyal
c9e3d57ed5 A spot of refactoring 2016-10-27 23:08:21 +05:30
Kovid Goyal
6eda70331a Char grid now works. Also downgrade GL requirement to 3.3 2016-10-27 22:48:03 +05:30
Kovid Goyal
4495859164 Utility methods to implement orthographic transforms 2016-10-27 22:09:20 +05:30
Kovid Goyal
57bfd19c59 Convenience functions for creating matrices 2016-10-27 21:00:42 +05:30
Kovid Goyal
9df413d9be Nicer error message if the ARB_copy_image extension is absent 2016-10-27 17:14:07 +05:30
Kovid Goyal
cc157f1b3e Only store rendered sprite data on the GPU 2016-10-27 17:09:56 +05:30
Kovid Goyal
e649cbbd59 Do the transform to UV space in the shader so that the texture can be dynamically resized 2016-10-27 15:36:08 +05:30
Kovid Goyal
736df601dc Dont use the image_storage functions since they require OpenGL 4.2 2016-10-27 15:10:42 +05:30
Kovid Goyal
f692776e29 Use a sprite sheet for char cells 2016-10-27 13:58:36 +05:30
Kovid Goyal
321373056c Start work on a class to manage cell textures on the GPU 2016-10-26 15:44:27 +05:30