Commit Graph

833 Commits

Author SHA1 Message Date
baldurk d90f8f0d41 Provide index to SV_VertexID when using index buffer. Refs #113 2014-12-04 14:10:16 +00:00
baldurk 3c05059529 Track our minimal shadow state on a per-context basis
* We track as little state as possible - basically only objects bound to
  binding points that we need to identify for old-style non-DSA functions.
  This is mostly for convenience - the best balance between tracking GL's
  _insane_ state vector and having to query everything we want every time.
* Although we don't properly handle multiple contexts, we need to make sure
  this state is tracked per context otherwise we can get weird mismatches
  and get crashes with e.g. invalid VAOs.
2014-12-03 23:40:03 +00:00
baldurk efac062cdd Make sure to apply initial contents before first replay of frame 2014-12-03 23:24:40 +00:00
baldurk 670c0ef7e7 Handle BGRA vertex attributes 2014-12-03 23:22:24 +00:00
baldurk 13c613d757 Handle binding 0 imagetexture 2014-12-03 23:13:38 +00:00
baldurk 850410b1a3 Vertex buffer functions also need to bind the VAO when reading 2014-12-03 21:21:57 +00:00
baldurk a4e6f0f1d1 Only explicitly bind vertex array object when reading, not executing 2014-12-03 21:20:26 +00:00
baldurk a5e019d143 Fix glBufferData re-creating, preserve chunk ordering 2014-12-03 20:23:49 +00:00
baldurk 2a43d0d4bf glCopyBufferSubData should contribute to record update count 2014-12-03 20:19:14 +00:00
baldurk 4bd1f940d6 only use CUBE_POSITIVE_X as a query target for CUBE_MAP
* GL_TEXTURE_CUBE_MAP_ARRAY can be used directly as a query target
2014-12-03 20:18:33 +00:00
baldurk c7576d8a7f Add resource record parent for VAO when binding buffer 2014-12-03 18:16:50 +00:00
baldurk d30ce5d6b2 Fixes for replay, and populating hooks (call through hooked func) 2014-12-03 18:16:06 +00:00
baldurk cb7dd8fa6d Check that functions are available before doing anything 2014-12-03 16:52:54 +00:00
baldurk 185df924dc Use proper wglGetProcAddress hook 2014-12-03 16:52:37 +00:00
baldurk 2f48158a89 Add some extensions that we already support, and ARB func aliases 2014-12-03 16:03:19 +00:00
baldurk 907361c4bb Add glBindMultiTextureEXT - still need to add rest of EXT_dsa funcs 2014-12-03 16:02:40 +00:00
baldurk 431eef4e6d 64-bit compile fixes 2014-12-03 14:10:57 +00:00
baldurk 46a29c7d14 As a slight concession, create a 'fake' VAO to use when 0 is bound
* I think this is invalid in the core profile, but it's a simple workaround
  and this might be a common problem.
2014-12-03 14:00:23 +00:00
baldurk 8397aa1f28 Handle glBufferData being used to rename/orphan to a new size 2014-12-03 13:57:03 +00:00
baldurk 34b39d79d2 Respect program settings for depth/stencil tests
* This means we don't e.g. enable the depth test when it was originally
  disabled, and show incorrect 'failure' of the draw to pass the depth test
2014-12-03 13:15:48 +00:00
baldurk 3cac0c339d Only set readbuffer to GL_BACK after default FBO is bound 2014-12-03 13:08:19 +00:00
baldurk e8006dde6c Only end unfinished queries etc if we're replaying from scratch 2014-12-03 13:08:01 +00:00
baldurk 03f631bc82 Actually serialise SRGB decode value (!) 2014-12-03 13:07:46 +00:00
baldurk 192ff9c007 Texbuffer display for GL 2014-12-03 12:31:00 +00:00
baldurk a05a8d457e Consider buffers that are bound to xfm feedback to be dirty 2014-12-03 11:53:11 +00:00
baldurk 2a3fde6e51 Special case GL_POINTS as it's enum value 0 (shows as GL_NONE) 2014-12-03 11:45:45 +00:00
baldurk 08174ef277 Serialise transform feedback buffer bindings into feedback record 2014-12-03 11:45:16 +00:00
baldurk 1061948185 Implement AllowFullscreen (or rather, !AllowFullscreen) for win32 GL 2014-12-03 10:41:37 +00:00
baldurk 61909e56c9 Handle shader being deleted before detach (just drop the detach) 2014-12-03 10:29:31 +00:00
baldurk c0c436f6ed Make sure to set all sources at once (glShaderSource replaces). 2014-12-03 10:23:31 +00:00
baldurk 6039958ba1 Check for validity of params before trying to serialise 2014-12-03 09:23:30 +00:00
baldurk d7485ad466 Correctly replay glUseProgram(0) 2014-12-03 09:23:19 +00:00
baldurk e52981ad47 Display of MSAA textures in GL 2014-12-02 23:28:12 +00:00
baldurk 4aab1172a4 Save out multisample count on default framebuffer 2014-12-02 23:27:03 +00:00
baldurk 46c70e6f69 UTF-8 bugfix (leave room for null terminator) 2014-12-02 22:39:45 +00:00
baldurk 72b8725c69 Serialise element buffer bindings into VAO record
* Also some VAO chunks weren't going into the VAO record properly.
2014-12-02 22:39:33 +00:00
baldurk e868280f3c Handle missing internal format case 2014-12-02 19:06:10 +00:00
baldurk 2017cdfc35 glBindBuffer sets the 'general' bindpoint buffer regardless of index 2014-12-02 19:02:53 +00:00
baldurk a9861f36bd Add list of extensions used in g_truc 430 and 440, just for now 2014-12-02 01:32:10 +00:00
baldurk 4b9854aa5e Add missing chunk handler 2014-12-02 01:32:00 +00:00
baldurk 973bfaaad0 Don't mark framebuffer itself as dirty 2014-12-02 01:31:55 +00:00
baldurk 314e9ee4db Handle NULL array of textures in glBindTextures 2014-12-02 01:31:45 +00:00
baldurk 9369c85953 Mute the spam about supported extension functions not being returned 2014-12-02 01:31:35 +00:00
baldurk ed7b394a57 Handle other object label types, and negative message lengths
* If a message length is set to a negative value, the message should be
  treated as null terminated
2014-12-02 00:50:32 +00:00
baldurk 6e213a71a7 More cheeky extensions. 2014-12-02 00:48:55 +00:00
baldurk 552581bdaa Fix wrong chunk enum being used 2014-12-02 00:37:54 +00:00
baldurk 46c06893e2 Another cheeky extension 2014-12-02 00:37:44 +00:00
baldurk 90e33ab95f Handle GL_EXT_texture_sRGB_decode. See gl-420-fbo-srgb-decode-ext 2014-12-02 00:25:49 +00:00
baldurk c1287fe853 Include SAMPLER_CUBE_MAP_ARRAY in switch (as any other sampler type) 2014-12-02 00:16:29 +00:00
baldurk 69562fb82d Handle invalid index type reasonably gracefully 2014-12-02 00:16:29 +00:00