mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-06 01:50:38 +00:00
Change GLResource tuple to be three components including Context
* This lets us distinguish framebuffer object 1 on context A from FBO 1 on context B. * At the moment we assume that all shareable objects are shared between all contexts. I think this is sensible and fairly common, but it will break if some contexts don't share as the objects will alias.
This commit is contained in:
@@ -408,8 +408,10 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, TextureDisplayOverlay overl
|
||||
GLuint curReadFBO = 0;
|
||||
gl.glGetIntegerv(eGL_DRAW_FRAMEBUFFER_BINDING, (GLint*)&curDrawFBO);
|
||||
gl.glGetIntegerv(eGL_DRAW_FRAMEBUFFER_BINDING, (GLint*)&curReadFBO);
|
||||
|
||||
void *ctx = m_ReplayCtx.ctx;
|
||||
|
||||
auto &progDetails = m_pDriver->m_Programs[m_pDriver->GetResourceManager()->GetID(ProgramRes(curProg))];
|
||||
auto &progDetails = m_pDriver->m_Programs[m_pDriver->GetResourceManager()->GetID(ProgramRes(ctx, curProg))];
|
||||
|
||||
if(progDetails.colOutProg == 0)
|
||||
{
|
||||
@@ -626,7 +628,7 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, TextureDisplayOverlay overl
|
||||
gl.glBindFramebuffer(eGL_DRAW_FRAMEBUFFER, curDrawFBO);
|
||||
gl.glBindFramebuffer(eGL_READ_FRAMEBUFFER, curReadFBO);
|
||||
|
||||
return m_pDriver->GetResourceManager()->GetID(TextureRes(DebugData.overlayTex));
|
||||
return m_pDriver->GetResourceManager()->GetID(TextureRes(ctx, DebugData.overlayTex));
|
||||
}
|
||||
|
||||
void GLReplay::RenderMesh(int frameID, vector<int> eventID, MeshDisplay cfg)
|
||||
|
||||
@@ -325,8 +325,8 @@ WrappedOpenGL::WrappedOpenGL(const wchar_t *logfile, const GLHookSet &funcs)
|
||||
|
||||
m_ResourceManager = new GLResourceManager(this);
|
||||
|
||||
m_DeviceResourceID = GetResourceManager()->RegisterResource(GLResource(eResSpecial, eSpecialResDevice));
|
||||
m_ContextResourceID = GetResourceManager()->RegisterResource(GLResource(eResSpecial, eSpecialResContext));
|
||||
m_DeviceResourceID = GetResourceManager()->RegisterResource(GLResource(NULL, eResSpecial, eSpecialResDevice));
|
||||
m_ContextResourceID = GetResourceManager()->RegisterResource(GLResource(NULL, eResSpecial, eSpecialResContext));
|
||||
|
||||
if(!RenderDoc::Inst().IsReplayApp())
|
||||
{
|
||||
@@ -791,7 +791,7 @@ bool WrappedOpenGL::Serialise_BeginCaptureFrame(bool applyInitialState)
|
||||
state.FetchState();
|
||||
}
|
||||
|
||||
state.Serialise(m_State, GetResourceManager());
|
||||
state.Serialise(m_State, GetCtx(), GetResourceManager());
|
||||
|
||||
if(m_State <= EXECUTING && applyInitialState)
|
||||
{
|
||||
@@ -925,7 +925,7 @@ void WrappedOpenGL::ProcessChunk(uint64_t offset, GLChunkType context)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, immContextId, ResourceId());
|
||||
|
||||
m_ResourceManager->AddLiveResource(immContextId, GLResource(eResSpecial, eSpecialResContext));
|
||||
m_ResourceManager->AddLiveResource(immContextId, GLResource(NULL, eResSpecial, eSpecialResContext));
|
||||
break;
|
||||
}
|
||||
case GEN_TEXTURE:
|
||||
@@ -1548,8 +1548,8 @@ void WrappedOpenGL::AddDrawcall(FetchDrawcall d, bool hasEvents)
|
||||
draw.depthOut = ResourceId();
|
||||
|
||||
GLNOTIMP("Hack, not getting current pipeline state framebufer binding");
|
||||
draw.outputs[0] = GetResourceManager()->GetID(TextureRes(m_FakeBB_Color));
|
||||
draw.depthOut = GetResourceManager()->GetID(TextureRes(m_FakeBB_DepthStencil));
|
||||
draw.outputs[0] = GetResourceManager()->GetID(TextureRes(GetCtx(), m_FakeBB_Color));
|
||||
draw.depthOut = GetResourceManager()->GetID(TextureRes(GetCtx(), m_FakeBB_DepthStencil));
|
||||
|
||||
m_CurDrawcallID++;
|
||||
if(hasEvents)
|
||||
|
||||
@@ -117,7 +117,6 @@ class WrappedOpenGL
|
||||
GLInitParams m_InitParams;
|
||||
|
||||
map<uint64_t, void *> m_ActiveContexts;
|
||||
void *GetCtx();
|
||||
|
||||
ResourceId m_DeviceResourceID;
|
||||
GLResourceRecord *m_DeviceRecord;
|
||||
@@ -253,6 +252,7 @@ class WrappedOpenGL
|
||||
ResourceId GetContextResourceID() { return m_ContextResourceID; }
|
||||
|
||||
GLReplay *GetReplay() { return &m_Replay; }
|
||||
void *GetCtx();
|
||||
|
||||
// replay interface
|
||||
void Initialise(GLInitParams ¶ms);
|
||||
|
||||
@@ -115,10 +115,10 @@ class GLResourceManager : public ResourceManager<GLResource, GLResourceRecord>
|
||||
return ResourceManager::GetResourceRecord(GetID(res));
|
||||
}
|
||||
|
||||
void RegisterSync(GLsync sync, GLuint &name, ResourceId &id)
|
||||
void RegisterSync(void *ctx, GLsync sync, GLuint &name, ResourceId &id)
|
||||
{
|
||||
name = (GLuint)Atomic::Inc64(&m_SyncName);
|
||||
id = RegisterResource(SyncRes(name));
|
||||
id = RegisterResource(SyncRes(ctx, name));
|
||||
|
||||
m_SyncIDs[sync] = id;
|
||||
m_CurrentSyncs[name] = sync;
|
||||
|
||||
@@ -409,7 +409,7 @@ void GLRenderState::Clear()
|
||||
RDCEraseEl(CullFace);
|
||||
}
|
||||
|
||||
void GLRenderState::Serialise(LogState state, GLResourceManager *rm)
|
||||
void GLRenderState::Serialise(LogState state, void *ctx, GLResourceManager *rm)
|
||||
{
|
||||
// TODO check GL_MAX_*
|
||||
|
||||
@@ -418,7 +418,7 @@ void GLRenderState::Serialise(LogState state, GLResourceManager *rm)
|
||||
for(size_t i=0; i < ARRAY_COUNT(Tex2D); i++)
|
||||
{
|
||||
ResourceId ID = ResourceId();
|
||||
if(state >= WRITING) ID = rm->GetID(TextureRes(Tex2D[i]));
|
||||
if(state >= WRITING) ID = rm->GetID(TextureRes(ctx, Tex2D[i]));
|
||||
m_pSerialiser->Serialise("GL_TEXTURE_BINDING_2D", ID);
|
||||
if(state < WRITING && ID != ResourceId()) Tex2D[i] = rm->GetLiveResource(ID).name;
|
||||
}
|
||||
@@ -428,7 +428,7 @@ void GLRenderState::Serialise(LogState state, GLResourceManager *rm)
|
||||
for(size_t i=0; i < ARRAY_COUNT(BufferBindings); i++)
|
||||
{
|
||||
ResourceId ID = ResourceId();
|
||||
if(state >= WRITING) ID = rm->GetID(BufferRes(BufferBindings[i]));
|
||||
if(state >= WRITING) ID = rm->GetID(BufferRes(ctx, BufferBindings[i]));
|
||||
m_pSerialiser->Serialise("GL_BUFFER_BINDING", ID);
|
||||
if(state < WRITING && ID != ResourceId()) BufferBindings[i] = rm->GetLiveResource(ID).name;
|
||||
}
|
||||
@@ -446,7 +446,7 @@ void GLRenderState::Serialise(LogState state, GLResourceManager *rm)
|
||||
for(int i=0; i < idxBufs[b].count; i++)
|
||||
{
|
||||
ResourceId ID = ResourceId();
|
||||
if(state >= WRITING) ID = rm->GetID(BufferRes(idxBufs[b].bufs[i].name));
|
||||
if(state >= WRITING) ID = rm->GetID(BufferRes(ctx, idxBufs[b].bufs[i].name));
|
||||
m_pSerialiser->Serialise("BUFFER_BINDING", ID);
|
||||
if(state < WRITING && ID != ResourceId()) idxBufs[b].bufs[i].name = rm->GetLiveResource(ID).name;
|
||||
|
||||
|
||||
@@ -173,8 +173,8 @@ struct GLRenderState
|
||||
GLenum CullFace;
|
||||
//
|
||||
|
||||
void Serialise(LogState state, GLResourceManager *rm);
|
||||
void Serialise(LogState state, void *ctx, GLResourceManager *rm);
|
||||
private:
|
||||
Serialiser *m_pSerialiser;
|
||||
const GLHookSet *m_Real;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -555,7 +555,9 @@ ShaderReflection *GLReplay::GetShader(ResourceId id)
|
||||
GLuint curProg = 0;
|
||||
gl.glGetIntegerv(eGL_CURRENT_PROGRAM, (GLint*)&curProg);
|
||||
|
||||
auto &progDetails = m_pDriver->m_Programs[m_pDriver->GetResourceManager()->GetID(ProgramRes(curProg))];
|
||||
void *ctx = m_ReplayCtx.ctx;
|
||||
|
||||
auto &progDetails = m_pDriver->m_Programs[m_pDriver->GetResourceManager()->GetID(ProgramRes(ctx, curProg))];
|
||||
auto &shaderDetails = m_pDriver->m_Shaders[id];
|
||||
|
||||
auto &refl = shaderDetails.reflection;
|
||||
@@ -777,7 +779,9 @@ void GLReplay::SavePipelineState()
|
||||
GLint curIdxBuf = 0;
|
||||
gl.glGetIntegerv(eGL_ELEMENT_ARRAY_BUFFER_BINDING, &curIdxBuf);
|
||||
|
||||
pipe.m_VtxIn.ibuffer.Buffer = rm->GetOriginalID(rm->GetID(BufferRes(curIdxBuf)));
|
||||
void *ctx = m_ReplayCtx.ctx;
|
||||
|
||||
pipe.m_VtxIn.ibuffer.Buffer = rm->GetOriginalID(rm->GetID(BufferRes(ctx, curIdxBuf)));
|
||||
|
||||
// Vertex buffers and attributes
|
||||
GLint numVBufferBindings = 16;
|
||||
@@ -793,7 +797,7 @@ void GLReplay::SavePipelineState()
|
||||
{
|
||||
GLint vb = 0;
|
||||
gl.glGetIntegeri_v(eGL_VERTEX_BINDING_BUFFER, i, &vb);
|
||||
pipe.m_VtxIn.vbuffers[i].Buffer = rm->GetOriginalID(rm->GetID(BufferRes(vb)));
|
||||
pipe.m_VtxIn.vbuffers[i].Buffer = rm->GetOriginalID(rm->GetID(BufferRes(ctx, vb)));
|
||||
|
||||
gl.glGetIntegeri_v(eGL_VERTEX_BINDING_STRIDE, i, (GLint *)&pipe.m_VtxIn.vbuffers[i].Stride);
|
||||
gl.glGetIntegeri_v(eGL_VERTEX_BINDING_OFFSET, i, (GLint *)&pipe.m_VtxIn.vbuffers[i].Offset);
|
||||
@@ -972,7 +976,7 @@ void GLReplay::SavePipelineState()
|
||||
}
|
||||
else
|
||||
{
|
||||
auto &progDetails = m_pDriver->m_Programs[rm->GetID(ProgramRes(curProg))];
|
||||
auto &progDetails = m_pDriver->m_Programs[rm->GetID(ProgramRes(ctx, curProg))];
|
||||
|
||||
RDCASSERT(progDetails.shaders.size());
|
||||
|
||||
@@ -1095,7 +1099,7 @@ void GLReplay::SavePipelineState()
|
||||
GLint firstSlice = 0;
|
||||
gl.glGetTexParameteriv(target, eGL_TEXTURE_VIEW_MIN_LEVEL, &firstSlice);
|
||||
|
||||
pipe.Textures[unit].Resource = rm->GetOriginalID(rm->GetID(TextureRes(tex)));
|
||||
pipe.Textures[unit].Resource = rm->GetOriginalID(rm->GetID(TextureRes(ctx, tex)));
|
||||
pipe.Textures[unit].FirstSlice = (uint32_t)firstSlice;
|
||||
}
|
||||
else
|
||||
@@ -1130,13 +1134,13 @@ void GLReplay::SavePipelineState()
|
||||
gl.glGetFramebufferAttachmentParameteriv(eGL_DRAW_FRAMEBUFFER, eGL_STENCIL_ATTACHMENT, eGL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, (GLint*)&curStencil);
|
||||
}
|
||||
|
||||
pipe.m_FB.FBO = rm->GetOriginalID(rm->GetID(FramebufferRes(curFBO)));
|
||||
pipe.m_FB.FBO = rm->GetOriginalID(rm->GetID(FramebufferRes(ctx, curFBO)));
|
||||
create_array_uninit(pipe.m_FB.Color, numCols);
|
||||
for(GLint i=0; i < numCols; i++)
|
||||
pipe.m_FB.Color[i] = rm->GetOriginalID(rm->GetID(TextureRes(curCol[i])));
|
||||
pipe.m_FB.Color[i] = rm->GetOriginalID(rm->GetID(TextureRes(ctx, curCol[i])));
|
||||
|
||||
pipe.m_FB.Depth = rm->GetOriginalID(rm->GetID(TextureRes(curDepth)));
|
||||
pipe.m_FB.Stencil = rm->GetOriginalID(rm->GetID(TextureRes(curStencil)));
|
||||
pipe.m_FB.Depth = rm->GetOriginalID(rm->GetID(TextureRes(ctx, curDepth)));
|
||||
pipe.m_FB.Stencil = rm->GetOriginalID(rm->GetID(TextureRes(ctx, curStencil)));
|
||||
}
|
||||
|
||||
void GLReplay::FillCBufferVariables(ResourceId shader, uint32_t cbufSlot, vector<ShaderVariable> &outvars, const vector<byte> &data)
|
||||
@@ -1148,7 +1152,7 @@ void GLReplay::FillCBufferVariables(ResourceId shader, uint32_t cbufSlot, vector
|
||||
GLuint curProg = 0;
|
||||
gl.glGetIntegerv(eGL_CURRENT_PROGRAM, (GLint*)&curProg);
|
||||
|
||||
auto &progDetails = m_pDriver->m_Programs[m_pDriver->GetResourceManager()->GetID(ProgramRes(curProg))];
|
||||
auto &progDetails = m_pDriver->m_Programs[m_pDriver->GetResourceManager()->GetID(ProgramRes(m_ReplayCtx.ctx, curProg))];
|
||||
auto &shaderDetails = m_pDriver->m_Shaders[shader];
|
||||
|
||||
GLint numUniforms = 0;
|
||||
|
||||
@@ -59,13 +59,15 @@ struct GLResource
|
||||
{
|
||||
GLResource() { Namespace = eResUnknown; name = ~0U; }
|
||||
GLResource(NullInitialiser) { Namespace = eResUnknown; name = ~0U; }
|
||||
GLResource(GLNamespace n, GLuint i) { Namespace = n; name = i; }
|
||||
GLResource(void *ctx, GLNamespace n, GLuint i) { Context = ctx; Namespace = n; name = i; }
|
||||
|
||||
void *Context;
|
||||
GLNamespace Namespace;
|
||||
GLuint name;
|
||||
|
||||
bool operator ==(const GLResource &o) const
|
||||
{
|
||||
return Namespace == o.Namespace && name == o.name;
|
||||
return Context == o.Context && Namespace == o.Namespace && name == o.name;
|
||||
}
|
||||
|
||||
bool operator !=(const GLResource &o) const
|
||||
@@ -75,21 +77,26 @@ struct GLResource
|
||||
|
||||
bool operator <(const GLResource &o) const
|
||||
{
|
||||
if(Context != o.Context) return Context < o.Context;
|
||||
if(Namespace != o.Namespace) return Namespace < o.Namespace;
|
||||
return name < o.name;
|
||||
}
|
||||
};
|
||||
|
||||
inline GLResource TextureRes(GLuint i) { return GLResource(eResTexture, i); }
|
||||
inline GLResource SamplerRes(GLuint i) { return GLResource(eResSampler, i); }
|
||||
inline GLResource FramebufferRes(GLuint i) { return GLResource(eResFramebuffer, i); }
|
||||
inline GLResource BufferRes(GLuint i) { return GLResource(eResBuffer, i); }
|
||||
inline GLResource VertexArrayRes(GLuint i) { return GLResource(eResVertexArray, i); }
|
||||
inline GLResource ShaderRes(GLuint i) { return GLResource(eResShader, i); }
|
||||
inline GLResource ProgramRes(GLuint i) { return GLResource(eResProgram, i); }
|
||||
inline GLResource ProgramPipeRes(GLuint i) { return GLResource(eResProgramPipe, i); }
|
||||
inline GLResource QueryRes(GLuint i) { return GLResource(eResQuery, i); }
|
||||
inline GLResource SyncRes(GLuint i) { return GLResource(eResSync, i); }
|
||||
// Shared objects currently ignore the context parameter.
|
||||
// For correctness we'd need to check if the context is shared and if so move up to a 'parent'
|
||||
// so the context value ends up being identical for objects being shared, but can be different
|
||||
// for objects in non-shared contexts
|
||||
inline GLResource TextureRes(void *ctx, GLuint i) { (void)ctx; return GLResource(NULL, eResTexture, i); }
|
||||
inline GLResource SamplerRes(void *ctx, GLuint i) { (void)ctx; return GLResource(NULL, eResSampler, i); }
|
||||
inline GLResource FramebufferRes(void *ctx, GLuint i) { return GLResource(ctx, eResFramebuffer, i); }
|
||||
inline GLResource BufferRes(void *ctx, GLuint i) { (void)ctx; return GLResource(NULL, eResBuffer, i); }
|
||||
inline GLResource VertexArrayRes(void *ctx, GLuint i) { return GLResource(ctx, eResVertexArray, i); }
|
||||
inline GLResource ShaderRes(void *ctx, GLuint i) { (void)ctx; return GLResource(NULL, eResShader, i); }
|
||||
inline GLResource ProgramRes(void *ctx, GLuint i) { (void)ctx; return GLResource(NULL, eResProgram, i); }
|
||||
inline GLResource ProgramPipeRes(void *ctx, GLuint i) { return GLResource(ctx, eResProgramPipe, i); }
|
||||
inline GLResource QueryRes(void *ctx, GLuint i) { return GLResource(ctx, eResQuery, i); }
|
||||
inline GLResource SyncRes(void *ctx, GLuint i) { (void)ctx; return GLResource(NULL, eResSync, i); }
|
||||
|
||||
struct GLResourceRecord : public ResourceRecord
|
||||
{
|
||||
|
||||
@@ -29,14 +29,14 @@
|
||||
|
||||
bool WrappedOpenGL::Serialise_glGenBuffers(GLsizei n, GLuint* textures)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(*textures)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(GetCtx(), *textures)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
GLuint real = 0;
|
||||
m_Real.glGenBuffers(1, &real);
|
||||
|
||||
GLResource res = BufferRes(real);
|
||||
GLResource res = BufferRes(GetCtx(), real);
|
||||
|
||||
ResourceId live = m_ResourceManager->RegisterResource(res);
|
||||
GetResourceManager()->AddLiveResource(id, res);
|
||||
@@ -54,7 +54,7 @@ void WrappedOpenGL::glGenBuffers(GLsizei n, GLuint *buffers)
|
||||
|
||||
for(GLsizei i=0; i < n; i++)
|
||||
{
|
||||
GLResource res = BufferRes(buffers[i]);
|
||||
GLResource res = BufferRes(GetCtx(), buffers[i]);
|
||||
ResourceId id = GetResourceManager()->RegisterResource(res);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
@@ -108,7 +108,7 @@ size_t WrappedOpenGL::BufferIdx(GLenum buf)
|
||||
bool WrappedOpenGL::Serialise_glBindBuffer(GLenum target, GLuint buffer)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, Target, target);
|
||||
SERIALISE_ELEMENT(ResourceId, Id, (buffer ? GetResourceManager()->GetID(BufferRes(buffer)) : ResourceId()));
|
||||
SERIALISE_ELEMENT(ResourceId, Id, (buffer ? GetResourceManager()->GetID(BufferRes(GetCtx(), buffer)) : ResourceId()));
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
@@ -148,7 +148,7 @@ void WrappedOpenGL::glBindBuffer(GLenum target, GLuint buffer)
|
||||
if(buffer == 0)
|
||||
m_BufferRecord[idx] = NULL;
|
||||
else
|
||||
m_BufferRecord[idx] = GetResourceManager()->GetResourceRecord(BufferRes(buffer));
|
||||
m_BufferRecord[idx] = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer));
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(BIND_BUFFER);
|
||||
@@ -168,7 +168,7 @@ void WrappedOpenGL::glBindBuffer(GLenum target, GLuint buffer)
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *r = m_BufferRecord[idx] = GetResourceManager()->GetResourceRecord(BufferRes(buffer));
|
||||
GLResourceRecord *r = m_BufferRecord[idx] = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer));
|
||||
|
||||
// it's legal to re-type buffers, generate another BindBuffer chunk to rename
|
||||
if(r->datatype != target)
|
||||
@@ -189,7 +189,7 @@ void WrappedOpenGL::glBindBuffer(GLenum target, GLuint buffer)
|
||||
|
||||
bool WrappedOpenGL::Serialise_glNamedBufferStorageEXT(GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(buffer)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(GetCtx(), buffer)));
|
||||
SERIALISE_ELEMENT(uint64_t, Bytesize, (uint64_t)size);
|
||||
|
||||
byte *dummy = NULL;
|
||||
@@ -232,7 +232,7 @@ void WrappedOpenGL::glNamedBufferStorageEXT(GLuint buffer, GLsizeiptr size, cons
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(buffer));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer));
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(BUFFERSTORAGE);
|
||||
@@ -285,7 +285,7 @@ void WrappedOpenGL::glBufferStorage(GLenum target, GLsizeiptr size, const void *
|
||||
|
||||
bool WrappedOpenGL::Serialise_glNamedBufferDataEXT(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(buffer)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(GetCtx(), buffer)));
|
||||
SERIALISE_ELEMENT(uint64_t, Bytesize, (uint64_t)size);
|
||||
|
||||
byte *dummy = NULL;
|
||||
@@ -328,7 +328,7 @@ void WrappedOpenGL::glNamedBufferDataEXT(GLuint buffer, GLsizeiptr size, const v
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(buffer));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer));
|
||||
RDCASSERT(record);
|
||||
|
||||
// detect buffer orphaning and just update backing store
|
||||
@@ -403,7 +403,7 @@ void WrappedOpenGL::glBufferData(GLenum target, GLsizeiptr size, const void *dat
|
||||
|
||||
bool WrappedOpenGL::Serialise_glNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(buffer)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(GetCtx(), buffer)));
|
||||
SERIALISE_ELEMENT(uint64_t, Offset, (uint64_t)offset);
|
||||
SERIALISE_ELEMENT(uint64_t, Bytesize, (uint64_t)size);
|
||||
SERIALISE_ELEMENT_BUF(byte *, bytes, data, (size_t)Bytesize);
|
||||
@@ -425,10 +425,10 @@ void WrappedOpenGL::glNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsi
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
if(m_HighTrafficResources.find(BufferRes(buffer)) != m_HighTrafficResources.end() && m_State != WRITING_CAPFRAME)
|
||||
if(m_HighTrafficResources.find(BufferRes(GetCtx(), buffer)) != m_HighTrafficResources.end() && m_State != WRITING_CAPFRAME)
|
||||
return;
|
||||
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(buffer));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer));
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(BUFFERSUBDATA);
|
||||
@@ -447,7 +447,7 @@ void WrappedOpenGL::glNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsi
|
||||
|
||||
if(record->UpdateCount > 60)
|
||||
{
|
||||
m_HighTrafficResources.insert(BufferRes(buffer));
|
||||
m_HighTrafficResources.insert(BufferRes(GetCtx(), buffer));
|
||||
GetResourceManager()->MarkDirtyResource(record->GetResourceID());
|
||||
}
|
||||
}
|
||||
@@ -478,8 +478,8 @@ void WrappedOpenGL::glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr s
|
||||
|
||||
bool WrappedOpenGL::Serialise_glNamedCopyBufferSubDataEXT(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, readid, GetResourceManager()->GetID(BufferRes(readBuffer)));
|
||||
SERIALISE_ELEMENT(ResourceId, writeid, GetResourceManager()->GetID(BufferRes(writeBuffer)));
|
||||
SERIALISE_ELEMENT(ResourceId, readid, GetResourceManager()->GetID(BufferRes(GetCtx(), readBuffer)));
|
||||
SERIALISE_ELEMENT(ResourceId, writeid, GetResourceManager()->GetID(BufferRes(GetCtx(), writeBuffer)));
|
||||
SERIALISE_ELEMENT(uint64_t, ReadOffset, (uint64_t)readOffset);
|
||||
SERIALISE_ELEMENT(uint64_t, WriteOffset, (uint64_t)writeOffset);
|
||||
SERIALISE_ELEMENT(uint64_t, Bytesize, (uint64_t)size);
|
||||
@@ -500,8 +500,8 @@ void WrappedOpenGL::glNamedCopyBufferSubDataEXT(GLuint readBuffer, GLuint writeB
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *readrecord = GetResourceManager()->GetResourceRecord(BufferRes(readBuffer));
|
||||
GLResourceRecord *writerecord = GetResourceManager()->GetResourceRecord(BufferRes(writeBuffer));
|
||||
GLResourceRecord *readrecord = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), readBuffer));
|
||||
GLResourceRecord *writerecord = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), writeBuffer));
|
||||
RDCASSERT(readrecord && writerecord);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(COPYBUFFERSUBDATA);
|
||||
@@ -554,7 +554,7 @@ bool WrappedOpenGL::Serialise_glBindBufferBase(GLenum target, GLuint index, GLui
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, Target, target);
|
||||
SERIALISE_ELEMENT(uint32_t, Index, index);
|
||||
SERIALISE_ELEMENT(ResourceId, id, (buffer ? GetResourceManager()->GetID(BufferRes(buffer)) : ResourceId()));
|
||||
SERIALISE_ELEMENT(ResourceId, id, (buffer ? GetResourceManager()->GetID(BufferRes(GetCtx(), buffer)) : ResourceId()));
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
@@ -581,7 +581,7 @@ void WrappedOpenGL::glBindBufferBase(GLenum target, GLuint index, GLuint buffer)
|
||||
if(buffer == 0)
|
||||
m_BufferRecord[idx] = NULL;
|
||||
else
|
||||
m_BufferRecord[idx] = GetResourceManager()->GetResourceRecord(BufferRes(buffer));
|
||||
m_BufferRecord[idx] = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer));
|
||||
}
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
@@ -599,7 +599,7 @@ bool WrappedOpenGL::Serialise_glBindBufferRange(GLenum target, GLuint index, GLu
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, Target, target);
|
||||
SERIALISE_ELEMENT(uint32_t, Index, index);
|
||||
SERIALISE_ELEMENT(ResourceId, id, (buffer ? GetResourceManager()->GetID(BufferRes(buffer)) : ResourceId()));
|
||||
SERIALISE_ELEMENT(ResourceId, id, (buffer ? GetResourceManager()->GetID(BufferRes(GetCtx(), buffer)) : ResourceId()));
|
||||
SERIALISE_ELEMENT(uint64_t, Offset, (uint64_t)offset);
|
||||
SERIALISE_ELEMENT(uint64_t, Size, (uint64_t)size);
|
||||
|
||||
@@ -628,7 +628,7 @@ void WrappedOpenGL::glBindBufferRange(GLenum target, GLuint index, GLuint buffer
|
||||
if(buffer == 0)
|
||||
m_BufferRecord[idx] = NULL;
|
||||
else
|
||||
m_BufferRecord[idx] = GetResourceManager()->GetResourceRecord(BufferRes(buffer));
|
||||
m_BufferRecord[idx] = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer));
|
||||
}
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
@@ -646,13 +646,13 @@ void *WrappedOpenGL::glMapNamedBufferEXT(GLuint buffer, GLenum access)
|
||||
{
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(buffer));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer));
|
||||
|
||||
GLint length;
|
||||
m_Real.glGetNamedBufferParameterivEXT(buffer, eGL_BUFFER_SIZE, &length);
|
||||
|
||||
bool straightUp = false;
|
||||
if(m_HighTrafficResources.find(BufferRes(buffer)) != m_HighTrafficResources.end() && m_State != WRITING_CAPFRAME)
|
||||
if(m_HighTrafficResources.find(BufferRes(GetCtx(), buffer)) != m_HighTrafficResources.end() && m_State != WRITING_CAPFRAME)
|
||||
straightUp = true;
|
||||
|
||||
if(GetResourceManager()->IsResourceDirty(record->GetResourceID()) && m_State != WRITING_CAPFRAME)
|
||||
@@ -661,7 +661,7 @@ void *WrappedOpenGL::glMapNamedBufferEXT(GLuint buffer, GLenum access)
|
||||
if(!straightUp && (access == eGL_WRITE_ONLY || access == eGL_READ_WRITE) && m_State != WRITING_CAPFRAME)
|
||||
{
|
||||
straightUp = true;
|
||||
m_HighTrafficResources.insert(BufferRes(buffer));
|
||||
m_HighTrafficResources.insert(BufferRes(GetCtx(), buffer));
|
||||
if(m_State != WRITING_CAPFRAME)
|
||||
GetResourceManager()->MarkDirtyResource(record->GetResourceID());
|
||||
}
|
||||
@@ -737,7 +737,7 @@ void *WrappedOpenGL::glMapNamedBufferEXT(GLuint buffer, GLenum access)
|
||||
record->UpdateCount++;
|
||||
|
||||
if(record->UpdateCount > 60)
|
||||
m_HighTrafficResources.insert(BufferRes(buffer));
|
||||
m_HighTrafficResources.insert(BufferRes(GetCtx(), buffer));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -769,10 +769,10 @@ void *WrappedOpenGL::glMapNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GL
|
||||
{
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(buffer));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer));
|
||||
|
||||
bool straightUp = false;
|
||||
if(m_HighTrafficResources.find(BufferRes(buffer)) != m_HighTrafficResources.end() && m_State != WRITING_CAPFRAME)
|
||||
if(m_HighTrafficResources.find(BufferRes(GetCtx(), buffer)) != m_HighTrafficResources.end() && m_State != WRITING_CAPFRAME)
|
||||
straightUp = true;
|
||||
|
||||
if(GetResourceManager()->IsResourceDirty(record->GetResourceID()) && m_State != WRITING_CAPFRAME)
|
||||
@@ -783,7 +783,7 @@ void *WrappedOpenGL::glMapNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GL
|
||||
if(!straightUp && !invalidateMap && (access & GL_MAP_WRITE_BIT) && m_State != WRITING_CAPFRAME)
|
||||
{
|
||||
straightUp = true;
|
||||
m_HighTrafficResources.insert(BufferRes(buffer));
|
||||
m_HighTrafficResources.insert(BufferRes(GetCtx(), buffer));
|
||||
if(m_State != WRITING_CAPFRAME)
|
||||
GetResourceManager()->MarkDirtyResource(record->GetResourceID());
|
||||
}
|
||||
@@ -890,7 +890,7 @@ void *WrappedOpenGL::glMapNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GL
|
||||
record->UpdateCount++;
|
||||
|
||||
if(record->UpdateCount > 60)
|
||||
m_HighTrafficResources.insert(BufferRes(buffer));
|
||||
m_HighTrafficResources.insert(BufferRes(GetCtx(), buffer));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -921,7 +921,7 @@ bool WrappedOpenGL::Serialise_glUnmapNamedBufferEXT(GLuint buffer)
|
||||
GLResourceRecord *record = NULL;
|
||||
|
||||
if(m_State >= WRITING)
|
||||
record = GetResourceManager()->GetResourceRecord(BufferRes(buffer));
|
||||
record = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer));
|
||||
|
||||
ResourceId bufID;
|
||||
uint64_t offs = 0;
|
||||
@@ -1010,7 +1010,7 @@ GLboolean WrappedOpenGL::glUnmapNamedBufferEXT(GLuint buffer)
|
||||
{
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(buffer));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer));
|
||||
auto status = record->Map.status;
|
||||
|
||||
GLboolean ret = GL_TRUE;
|
||||
@@ -1283,14 +1283,14 @@ void WrappedOpenGL::glDisableVertexAttribArray(GLuint index)
|
||||
|
||||
bool WrappedOpenGL::Serialise_glGenVertexArrays(GLsizei n, GLuint* arrays)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(VertexArrayRes(*arrays)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(VertexArrayRes(GetCtx(), *arrays)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
GLuint real = 0;
|
||||
m_Real.glGenVertexArrays(1, &real);
|
||||
|
||||
GLResource res = VertexArrayRes(real);
|
||||
GLResource res = VertexArrayRes(GetCtx(), real);
|
||||
|
||||
m_ResourceManager->RegisterResource(res);
|
||||
GetResourceManager()->AddLiveResource(id, res);
|
||||
@@ -1305,7 +1305,7 @@ void WrappedOpenGL::glGenVertexArrays(GLsizei n, GLuint *arrays)
|
||||
|
||||
for(GLsizei i=0; i < n; i++)
|
||||
{
|
||||
GLResource res = VertexArrayRes(arrays[i]);
|
||||
GLResource res = VertexArrayRes(GetCtx(), arrays[i]);
|
||||
ResourceId id = GetResourceManager()->RegisterResource(res);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
@@ -1333,7 +1333,7 @@ void WrappedOpenGL::glGenVertexArrays(GLsizei n, GLuint *arrays)
|
||||
|
||||
bool WrappedOpenGL::Serialise_glBindVertexArray(GLuint array)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, (array ? GetResourceManager()->GetID(VertexArrayRes(array)) : ResourceId()));
|
||||
SERIALISE_ELEMENT(ResourceId, id, (array ? GetResourceManager()->GetID(VertexArrayRes(GetCtx(), array)) : ResourceId()));
|
||||
|
||||
if(m_State <= EXECUTING)
|
||||
{
|
||||
@@ -1363,7 +1363,7 @@ void WrappedOpenGL::glBindVertexArray(GLuint array)
|
||||
}
|
||||
else
|
||||
{
|
||||
m_VertexArrayRecord = GetResourceManager()->GetResourceRecord(VertexArrayRes(array));
|
||||
m_VertexArrayRecord = GetResourceManager()->GetResourceRecord(VertexArrayRes(GetCtx(), array));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1381,7 +1381,7 @@ void WrappedOpenGL::glDeleteBuffers(GLsizei n, const GLuint *buffers)
|
||||
m_Real.glDeleteBuffers(n, buffers);
|
||||
|
||||
for(GLsizei i=0; i < n; i++)
|
||||
GetResourceManager()->UnregisterResource(BufferRes(buffers[i]));
|
||||
GetResourceManager()->UnregisterResource(BufferRes(GetCtx(), buffers[i]));
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glDeleteVertexArrays(GLsizei n, const GLuint *arrays)
|
||||
@@ -1389,5 +1389,5 @@ void WrappedOpenGL::glDeleteVertexArrays(GLsizei n, const GLuint *arrays)
|
||||
m_Real.glDeleteVertexArrays(n, arrays);
|
||||
|
||||
for(GLsizei i=0; i < n; i++)
|
||||
GetResourceManager()->UnregisterResource(VertexArrayRes(arrays[i]));
|
||||
GetResourceManager()->UnregisterResource(VertexArrayRes(GetCtx(), arrays[i]));
|
||||
}
|
||||
|
||||
@@ -47,10 +47,10 @@ bool WrappedOpenGL::Serialise_glObjectLabel(GLenum identifier, GLuint name, GLsi
|
||||
switch(identifier)
|
||||
{
|
||||
case eGL_TEXTURE:
|
||||
liveid = GetResourceManager()->GetID(TextureRes(name));
|
||||
liveid = GetResourceManager()->GetID(TextureRes(GetCtx(), name));
|
||||
break;
|
||||
case eGL_BUFFER:
|
||||
liveid = GetResourceManager()->GetID(BufferRes(name));
|
||||
liveid = GetResourceManager()->GetID(BufferRes(GetCtx(), name));
|
||||
break;
|
||||
default:
|
||||
RDCERR("Unhandled namespace in glObjectLabel");
|
||||
|
||||
@@ -28,14 +28,14 @@
|
||||
|
||||
bool WrappedOpenGL::Serialise_glGenFramebuffers(GLsizei n, GLuint* framebuffers)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(FramebufferRes(*framebuffers)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(FramebufferRes(GetCtx(), *framebuffers)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
GLuint real = 0;
|
||||
m_Real.glGenFramebuffers(1, &real);
|
||||
|
||||
GLResource res = FramebufferRes(real);
|
||||
GLResource res = FramebufferRes(GetCtx(), real);
|
||||
|
||||
ResourceId live = m_ResourceManager->RegisterResource(res);
|
||||
GetResourceManager()->AddLiveResource(id, res);
|
||||
@@ -50,7 +50,7 @@ void WrappedOpenGL::glGenFramebuffers(GLsizei n, GLuint *framebuffers)
|
||||
|
||||
for(GLsizei i=0; i < n; i++)
|
||||
{
|
||||
GLResource res = FramebufferRes(framebuffers[i]);
|
||||
GLResource res = FramebufferRes(GetCtx(), framebuffers[i]);
|
||||
ResourceId id = GetResourceManager()->RegisterResource(res);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
@@ -79,9 +79,9 @@ void WrappedOpenGL::glGenFramebuffers(GLsizei n, GLuint *framebuffers)
|
||||
bool WrappedOpenGL::Serialise_glNamedFramebufferTextureEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, Attach, attachment);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
SERIALISE_ELEMENT(int32_t, Level, level);
|
||||
SERIALISE_ELEMENT(ResourceId, fbid, (framebuffer == 0 ? ResourceId() : GetResourceManager()->GetID(FramebufferRes(framebuffer))));
|
||||
SERIALISE_ELEMENT(ResourceId, fbid, (framebuffer == 0 ? ResourceId() : GetResourceManager()->GetID(FramebufferRes(GetCtx(), framebuffer))));
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
@@ -106,7 +106,7 @@ void WrappedOpenGL::glNamedFramebufferTextureEXT(GLuint framebuffer, GLenum atta
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(framebuffer));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(GetCtx(), framebuffer));
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(FRAMEBUFFER_TEX);
|
||||
Serialise_glNamedFramebufferTextureEXT(framebuffer, attachment, texture, level);
|
||||
@@ -149,10 +149,10 @@ void WrappedOpenGL::glFramebufferTexture(GLenum target, GLenum attachment, GLuin
|
||||
bool WrappedOpenGL::Serialise_glNamedFramebufferTexture2DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, Attach, attachment);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
SERIALISE_ELEMENT(GLenum, TexTarget, textarget);
|
||||
SERIALISE_ELEMENT(int32_t, Level, level);
|
||||
SERIALISE_ELEMENT(ResourceId, fbid, (framebuffer == 0 ? ResourceId() : GetResourceManager()->GetID(FramebufferRes(framebuffer))));
|
||||
SERIALISE_ELEMENT(ResourceId, fbid, (framebuffer == 0 ? ResourceId() : GetResourceManager()->GetID(FramebufferRes(GetCtx(), framebuffer))));
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
@@ -177,7 +177,7 @@ void WrappedOpenGL::glNamedFramebufferTexture2DEXT(GLuint framebuffer, GLenum at
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(framebuffer));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(GetCtx(), framebuffer));
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(FRAMEBUFFER_TEX2D);
|
||||
Serialise_glNamedFramebufferTexture2DEXT(framebuffer, attachment, textarget, texture, level);
|
||||
@@ -220,10 +220,10 @@ void WrappedOpenGL::glFramebufferTexture2D(GLenum target, GLenum attachment, GLe
|
||||
bool WrappedOpenGL::Serialise_glNamedFramebufferTextureLayerEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, Attach, attachment);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
SERIALISE_ELEMENT(int32_t, Level, level);
|
||||
SERIALISE_ELEMENT(int32_t, Layer, layer);
|
||||
SERIALISE_ELEMENT(ResourceId, fbid, (framebuffer == 0 ? ResourceId() : GetResourceManager()->GetID(FramebufferRes(framebuffer))));
|
||||
SERIALISE_ELEMENT(ResourceId, fbid, (framebuffer == 0 ? ResourceId() : GetResourceManager()->GetID(FramebufferRes(GetCtx(), framebuffer))));
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
@@ -248,7 +248,7 @@ void WrappedOpenGL::glNamedFramebufferTextureLayerEXT(GLuint framebuffer, GLenum
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(framebuffer));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(GetCtx(), framebuffer));
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(FRAMEBUFFER_TEXLAYER);
|
||||
Serialise_glNamedFramebufferTextureLayerEXT(framebuffer, attachment, texture, level, layer);
|
||||
@@ -343,7 +343,7 @@ void WrappedOpenGL::glReadBuffer(GLenum mode)
|
||||
bool WrappedOpenGL::Serialise_glBindFramebuffer(GLenum target, GLuint framebuffer)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, Target, target);
|
||||
SERIALISE_ELEMENT(ResourceId, Id, (framebuffer ? GetResourceManager()->GetID(FramebufferRes(framebuffer)) : ResourceId()));
|
||||
SERIALISE_ELEMENT(ResourceId, Id, (framebuffer ? GetResourceManager()->GetID(FramebufferRes(GetCtx(), framebuffer)) : ResourceId()));
|
||||
|
||||
if(m_State <= EXECUTING)
|
||||
{
|
||||
@@ -375,9 +375,9 @@ void WrappedOpenGL::glBindFramebuffer(GLenum target, GLuint framebuffer)
|
||||
framebuffer = m_FakeBB_FBO;
|
||||
|
||||
if(target == eGL_DRAW_FRAMEBUFFER || target == eGL_FRAMEBUFFER)
|
||||
m_DrawFramebufferRecord = GetResourceManager()->GetResourceRecord(FramebufferRes(framebuffer));
|
||||
m_DrawFramebufferRecord = GetResourceManager()->GetResourceRecord(FramebufferRes(GetCtx(), framebuffer));
|
||||
else
|
||||
m_ReadFramebufferRecord = GetResourceManager()->GetResourceRecord(FramebufferRes(framebuffer));
|
||||
m_ReadFramebufferRecord = GetResourceManager()->GetResourceRecord(FramebufferRes(GetCtx(), framebuffer));
|
||||
|
||||
m_Real.glBindFramebuffer(target, framebuffer);
|
||||
}
|
||||
@@ -415,7 +415,7 @@ void WrappedOpenGL::glDrawBuffer(GLenum buf)
|
||||
|
||||
bool WrappedOpenGL::Serialise_glFramebufferDrawBuffersEXT(GLuint framebuffer, GLsizei n, const GLenum *bufs)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, Id, GetResourceManager()->GetID(FramebufferRes(framebuffer)));
|
||||
SERIALISE_ELEMENT(ResourceId, Id, GetResourceManager()->GetID(FramebufferRes(GetCtx(), framebuffer)));
|
||||
SERIALISE_ELEMENT(uint32_t, num, n);
|
||||
SERIALISE_ELEMENT_ARR(GLenum, buffers, bufs, num);
|
||||
|
||||
@@ -454,7 +454,7 @@ void WrappedOpenGL::glFramebufferDrawBuffersEXT(GLuint framebuffer, GLsizei n, c
|
||||
SCOPED_SERIALISE_CONTEXT(DRAW_BUFFERS);
|
||||
Serialise_glFramebufferDrawBuffersEXT(framebuffer, n, bufs);
|
||||
|
||||
ResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(framebuffer));
|
||||
ResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(GetCtx(), framebuffer));
|
||||
record->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
@@ -514,5 +514,5 @@ void WrappedOpenGL::glDeleteFramebuffers(GLsizei n, const GLuint *framebuffers)
|
||||
m_Real.glDeleteFramebuffers(n, framebuffers);
|
||||
|
||||
for(GLsizei i=0; i < n; i++)
|
||||
GetResourceManager()->UnregisterResource(FramebufferRes(framebuffers[i]));
|
||||
GetResourceManager()->UnregisterResource(FramebufferRes(GetCtx(), framebuffers[i]));
|
||||
}
|
||||
|
||||
@@ -38,9 +38,9 @@ bool WrappedOpenGL::Serialise_glFenceSync(GLsync real, GLenum condition, GLbitfi
|
||||
|
||||
GLuint name = 0;
|
||||
ResourceId liveid = ResourceId();
|
||||
GetResourceManager()->RegisterSync(real, name, liveid);
|
||||
GetResourceManager()->RegisterSync(GetCtx(), real, name, liveid);
|
||||
|
||||
GLResource res = SyncRes(name);
|
||||
GLResource res = SyncRes(GetCtx(), name);
|
||||
|
||||
ResourceId live = m_ResourceManager->RegisterResource(res);
|
||||
GetResourceManager()->AddLiveResource(id, res);
|
||||
@@ -55,8 +55,8 @@ GLsync WrappedOpenGL::glFenceSync(GLenum condition, GLbitfield flags)
|
||||
|
||||
GLuint name = 0;
|
||||
ResourceId id = ResourceId();
|
||||
GetResourceManager()->RegisterSync(sync, name, id);
|
||||
GLResource res = SyncRes(name);
|
||||
GetResourceManager()->RegisterSync(GetCtx(), sync, name, id);
|
||||
GLResource res = SyncRes(GetCtx(), name);
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
@@ -154,14 +154,14 @@ void WrappedOpenGL::glDeleteSync(GLsync sync)
|
||||
|
||||
bool WrappedOpenGL::Serialise_glGenQueries(GLsizei n, GLuint* ids)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(QueryRes(*ids)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(QueryRes(GetCtx(), *ids)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
GLuint real = 0;
|
||||
m_Real.glGenSamplers(1, &real);
|
||||
|
||||
GLResource res = QueryRes(real);
|
||||
GLResource res = QueryRes(GetCtx(), real);
|
||||
|
||||
ResourceId live = m_ResourceManager->RegisterResource(res);
|
||||
GetResourceManager()->AddLiveResource(id, res);
|
||||
@@ -176,7 +176,7 @@ void WrappedOpenGL::glGenQueries(GLsizei count, GLuint *ids)
|
||||
|
||||
for(GLsizei i=0; i < count; i++)
|
||||
{
|
||||
GLResource res = QueryRes(ids[i]);
|
||||
GLResource res = QueryRes(GetCtx(), ids[i]);
|
||||
ResourceId id = GetResourceManager()->RegisterResource(res);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
@@ -205,7 +205,7 @@ void WrappedOpenGL::glGenQueries(GLsizei count, GLuint *ids)
|
||||
bool WrappedOpenGL::Serialise_glBeginQuery(GLenum target, GLuint qid)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, Target, target);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(QueryRes(qid)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(QueryRes(GetCtx(), qid)));
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
@@ -258,5 +258,5 @@ void WrappedOpenGL::glDeleteQueries(GLsizei n, const GLuint *ids)
|
||||
m_Real.glDeleteQueries(n, ids);
|
||||
|
||||
for(GLsizei i=0; i < n; i++)
|
||||
GetResourceManager()->UnregisterResource(QueryRes(ids[i]));
|
||||
GetResourceManager()->UnregisterResource(QueryRes(GetCtx(), ids[i]));
|
||||
}
|
||||
|
||||
@@ -28,14 +28,14 @@
|
||||
|
||||
bool WrappedOpenGL::Serialise_glGenSamplers(GLsizei n, GLuint* samplers)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(*samplers)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(GetCtx(), *samplers)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
GLuint real = 0;
|
||||
m_Real.glGenSamplers(1, &real);
|
||||
|
||||
GLResource res = SamplerRes(real);
|
||||
GLResource res = SamplerRes(GetCtx(), real);
|
||||
|
||||
ResourceId live = m_ResourceManager->RegisterResource(res);
|
||||
GetResourceManager()->AddLiveResource(id, res);
|
||||
@@ -50,7 +50,7 @@ void WrappedOpenGL::glGenSamplers(GLsizei count, GLuint *samplers)
|
||||
|
||||
for(GLsizei i=0; i < count; i++)
|
||||
{
|
||||
GLResource res = SamplerRes(samplers[i]);
|
||||
GLResource res = SamplerRes(GetCtx(), samplers[i]);
|
||||
ResourceId id = GetResourceManager()->RegisterResource(res);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
@@ -79,7 +79,7 @@ void WrappedOpenGL::glGenSamplers(GLsizei count, GLuint *samplers)
|
||||
bool WrappedOpenGL::Serialise_glBindSampler(GLuint unit, GLuint sampler)
|
||||
{
|
||||
SERIALISE_ELEMENT(uint32_t, Unit, unit);
|
||||
SERIALISE_ELEMENT(ResourceId, id, sampler ? GetResourceManager()->GetID(SamplerRes(sampler)) : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, id, sampler ? GetResourceManager()->GetID(SamplerRes(GetCtx(), sampler)) : ResourceId());
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
@@ -112,7 +112,7 @@ void WrappedOpenGL::glBindSampler(GLuint unit, GLuint sampler)
|
||||
|
||||
bool WrappedOpenGL::Serialise_glSamplerParameteri(GLuint sampler, GLenum pname, GLint param)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(sampler)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(GetCtx(), sampler)));
|
||||
SERIALISE_ELEMENT(GLenum, PName, pname);
|
||||
SERIALISE_ELEMENT(int32_t, Param, param);
|
||||
|
||||
@@ -135,7 +135,7 @@ void WrappedOpenGL::glSamplerParameteri(GLuint sampler, GLenum pname, GLint para
|
||||
Serialise_glSamplerParameteri(sampler, pname, param);
|
||||
|
||||
if(m_State == WRITING_IDLE)
|
||||
GetResourceManager()->GetResourceRecord(SamplerRes(sampler))->AddChunk(scope.Get());
|
||||
GetResourceManager()->GetResourceRecord(SamplerRes(GetCtx(), sampler))->AddChunk(scope.Get());
|
||||
else
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -143,7 +143,7 @@ void WrappedOpenGL::glSamplerParameteri(GLuint sampler, GLenum pname, GLint para
|
||||
|
||||
bool WrappedOpenGL::Serialise_glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(sampler)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(GetCtx(), sampler)));
|
||||
SERIALISE_ELEMENT(GLenum, PName, pname);
|
||||
SERIALISE_ELEMENT(float, Param, param);
|
||||
|
||||
@@ -166,7 +166,7 @@ void WrappedOpenGL::glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat pa
|
||||
Serialise_glSamplerParameterf(sampler, pname, param);
|
||||
|
||||
if(m_State == WRITING_IDLE)
|
||||
GetResourceManager()->GetResourceRecord(SamplerRes(sampler))->AddChunk(scope.Get());
|
||||
GetResourceManager()->GetResourceRecord(SamplerRes(GetCtx(), sampler))->AddChunk(scope.Get());
|
||||
else
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -174,7 +174,7 @@ void WrappedOpenGL::glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat pa
|
||||
|
||||
bool WrappedOpenGL::Serialise_glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint *params)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(sampler)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(GetCtx(), sampler)));
|
||||
SERIALISE_ELEMENT(GLenum, PName, pname);
|
||||
const size_t nParams = (PName == eGL_TEXTURE_BORDER_COLOR ? 4U : 1U);
|
||||
SERIALISE_ELEMENT_ARR(int32_t, Params, params, nParams);
|
||||
@@ -200,7 +200,7 @@ void WrappedOpenGL::glSamplerParameteriv(GLuint sampler, GLenum pname, const GLi
|
||||
Serialise_glSamplerParameteriv(sampler, pname, params);
|
||||
|
||||
if(m_State == WRITING_IDLE)
|
||||
GetResourceManager()->GetResourceRecord(SamplerRes(sampler))->AddChunk(scope.Get());
|
||||
GetResourceManager()->GetResourceRecord(SamplerRes(GetCtx(), sampler))->AddChunk(scope.Get());
|
||||
else
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -208,7 +208,7 @@ void WrappedOpenGL::glSamplerParameteriv(GLuint sampler, GLenum pname, const GLi
|
||||
|
||||
bool WrappedOpenGL::Serialise_glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *params)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(sampler)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(GetCtx(), sampler)));
|
||||
SERIALISE_ELEMENT(GLenum, PName, pname);
|
||||
const size_t nParams = (PName == eGL_TEXTURE_BORDER_COLOR ? 4U : 1U);
|
||||
SERIALISE_ELEMENT_ARR(float, Params, params, nParams);
|
||||
@@ -234,7 +234,7 @@ void WrappedOpenGL::glSamplerParameterfv(GLuint sampler, GLenum pname, const GLf
|
||||
Serialise_glSamplerParameterfv(sampler, pname, params);
|
||||
|
||||
if(m_State == WRITING_IDLE)
|
||||
GetResourceManager()->GetResourceRecord(SamplerRes(sampler))->AddChunk(scope.Get());
|
||||
GetResourceManager()->GetResourceRecord(SamplerRes(GetCtx(), sampler))->AddChunk(scope.Get());
|
||||
else
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -242,7 +242,7 @@ void WrappedOpenGL::glSamplerParameterfv(GLuint sampler, GLenum pname, const GLf
|
||||
|
||||
bool WrappedOpenGL::Serialise_glSamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *params)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(sampler)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(GetCtx(), sampler)));
|
||||
SERIALISE_ELEMENT(GLenum, PName, pname);
|
||||
const size_t nParams = (PName == eGL_TEXTURE_BORDER_COLOR ? 4U : 1U);
|
||||
SERIALISE_ELEMENT_ARR(int32_t, Params, params, nParams);
|
||||
@@ -268,7 +268,7 @@ void WrappedOpenGL::glSamplerParameterIiv(GLuint sampler, GLenum pname, const GL
|
||||
Serialise_glSamplerParameterIiv(sampler, pname, params);
|
||||
|
||||
if(m_State == WRITING_IDLE)
|
||||
GetResourceManager()->GetResourceRecord(SamplerRes(sampler))->AddChunk(scope.Get());
|
||||
GetResourceManager()->GetResourceRecord(SamplerRes(GetCtx(), sampler))->AddChunk(scope.Get());
|
||||
else
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -276,7 +276,7 @@ void WrappedOpenGL::glSamplerParameterIiv(GLuint sampler, GLenum pname, const GL
|
||||
|
||||
bool WrappedOpenGL::Serialise_glSamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *params)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(sampler)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(GetCtx(), sampler)));
|
||||
SERIALISE_ELEMENT(GLenum, PName, pname);
|
||||
const size_t nParams = (PName == eGL_TEXTURE_BORDER_COLOR ? 4U : 1U);
|
||||
SERIALISE_ELEMENT_ARR(uint32_t, Params, params, nParams);
|
||||
@@ -302,7 +302,7 @@ void WrappedOpenGL::glSamplerParameterIuiv(GLuint sampler, GLenum pname, const G
|
||||
Serialise_glSamplerParameterIuiv(sampler, pname, params);
|
||||
|
||||
if(m_State == WRITING_IDLE)
|
||||
GetResourceManager()->GetResourceRecord(SamplerRes(sampler))->AddChunk(scope.Get());
|
||||
GetResourceManager()->GetResourceRecord(SamplerRes(GetCtx(), sampler))->AddChunk(scope.Get());
|
||||
else
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -313,5 +313,5 @@ void WrappedOpenGL::glDeleteSamplers(GLsizei n, const GLuint *ids)
|
||||
m_Real.glDeleteSamplers(n, ids);
|
||||
|
||||
for(GLsizei i=0; i < n; i++)
|
||||
GetResourceManager()->UnregisterResource(SamplerRes(ids[i]));
|
||||
GetResourceManager()->UnregisterResource(SamplerRes(GetCtx(), ids[i]));
|
||||
}
|
||||
|
||||
@@ -32,13 +32,13 @@
|
||||
bool WrappedOpenGL::Serialise_glCreateShader(GLuint shader, GLenum type)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, Type, type);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ShaderRes(shader)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ShaderRes(GetCtx(), shader)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
GLuint real = m_Real.glCreateShader(Type);
|
||||
|
||||
GLResource res = ShaderRes(real);
|
||||
GLResource res = ShaderRes(GetCtx(), real);
|
||||
|
||||
ResourceId liveId = GetResourceManager()->RegisterResource(res);
|
||||
|
||||
@@ -54,7 +54,7 @@ GLuint WrappedOpenGL::glCreateShader(GLenum type)
|
||||
{
|
||||
GLuint real = m_Real.glCreateShader(type);
|
||||
|
||||
GLResource res = ShaderRes(real);
|
||||
GLResource res = ShaderRes(GetCtx(), real);
|
||||
ResourceId id = GetResourceManager()->RegisterResource(res);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
@@ -83,7 +83,7 @@ GLuint WrappedOpenGL::glCreateShader(GLenum type)
|
||||
|
||||
bool WrappedOpenGL::Serialise_glShaderSource(GLuint shader, GLsizei count, const GLchar* const *source, const GLint *length)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ShaderRes(shader)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ShaderRes(GetCtx(), shader)));
|
||||
SERIALISE_ELEMENT(uint32_t, Count, count);
|
||||
|
||||
vector<string> srcs;
|
||||
@@ -123,7 +123,7 @@ void WrappedOpenGL::glShaderSource(GLuint shader, GLsizei count, const GLchar* c
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ShaderRes(shader));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ShaderRes(GetCtx(), shader));
|
||||
RDCASSERT(record);
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(SHADERSOURCE);
|
||||
@@ -136,7 +136,7 @@ void WrappedOpenGL::glShaderSource(GLuint shader, GLsizei count, const GLchar* c
|
||||
|
||||
bool WrappedOpenGL::Serialise_glCompileShader(GLuint shader)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ShaderRes(shader)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ShaderRes(GetCtx(), shader)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
@@ -152,7 +152,7 @@ void WrappedOpenGL::glCompileShader(GLuint shader)
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ShaderRes(shader));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ShaderRes(GetCtx(), shader));
|
||||
RDCASSERT(record);
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(COMPILESHADER);
|
||||
@@ -172,13 +172,13 @@ void WrappedOpenGL::glDeleteShader(GLuint shader)
|
||||
{
|
||||
m_Real.glDeleteShader(shader);
|
||||
|
||||
GetResourceManager()->UnregisterResource(ShaderRes(shader));
|
||||
GetResourceManager()->UnregisterResource(ShaderRes(GetCtx(), shader));
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glAttachShader(GLuint program, GLuint shader)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, progid, GetResourceManager()->GetID(ProgramRes(program)));
|
||||
SERIALISE_ELEMENT(ResourceId, shadid, GetResourceManager()->GetID(ShaderRes(shader)));
|
||||
SERIALISE_ELEMENT(ResourceId, progid, GetResourceManager()->GetID(ProgramRes(GetCtx(), program)));
|
||||
SERIALISE_ELEMENT(ResourceId, shadid, GetResourceManager()->GetID(ShaderRes(GetCtx(), shader)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
@@ -200,8 +200,8 @@ void WrappedOpenGL::glAttachShader(GLuint program, GLuint shader)
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *progRecord = GetResourceManager()->GetResourceRecord(ProgramRes(program));
|
||||
GLResourceRecord *shadRecord = GetResourceManager()->GetResourceRecord(ShaderRes(shader));
|
||||
GLResourceRecord *progRecord = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program));
|
||||
GLResourceRecord *shadRecord = GetResourceManager()->GetResourceRecord(ShaderRes(GetCtx(), shader));
|
||||
RDCASSERT(progRecord && shadRecord);
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(ATTACHSHADER);
|
||||
@@ -215,8 +215,8 @@ void WrappedOpenGL::glAttachShader(GLuint program, GLuint shader)
|
||||
|
||||
bool WrappedOpenGL::Serialise_glDetachShader(GLuint program, GLuint shader)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, progid, GetResourceManager()->GetID(ProgramRes(program)));
|
||||
SERIALISE_ELEMENT(ResourceId, shadid, GetResourceManager()->GetID(ShaderRes(shader)));
|
||||
SERIALISE_ELEMENT(ResourceId, progid, GetResourceManager()->GetID(ProgramRes(GetCtx(), program)));
|
||||
SERIALISE_ELEMENT(ResourceId, shadid, GetResourceManager()->GetID(ShaderRes(GetCtx(), shader)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
@@ -249,7 +249,7 @@ void WrappedOpenGL::glDetachShader(GLuint program, GLuint shader)
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *progRecord = GetResourceManager()->GetResourceRecord(ProgramRes(program));
|
||||
GLResourceRecord *progRecord = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program));
|
||||
RDCASSERT(progRecord);
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(DETACHSHADER);
|
||||
@@ -268,7 +268,7 @@ bool WrappedOpenGL::Serialise_glCreateShaderProgramv(GLuint program, GLenum type
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, Type, type);
|
||||
SERIALISE_ELEMENT(int32_t, Count, count);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(program)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(GetCtx(), program)));
|
||||
|
||||
vector<string> src;
|
||||
|
||||
@@ -291,7 +291,7 @@ bool WrappedOpenGL::Serialise_glCreateShaderProgramv(GLuint program, GLenum type
|
||||
|
||||
delete[] sources;
|
||||
|
||||
GLResource res = ProgramRes(real);
|
||||
GLResource res = ProgramRes(GetCtx(), real);
|
||||
|
||||
m_ResourceManager->RegisterResource(res);
|
||||
GetResourceManager()->AddLiveResource(id, res);
|
||||
@@ -304,7 +304,7 @@ GLuint WrappedOpenGL::glCreateShaderProgramv(GLenum type, GLsizei count, const G
|
||||
{
|
||||
GLuint real = m_Real.glCreateShaderProgramv(type, count, strings);
|
||||
|
||||
GLResource res = ProgramRes(real);
|
||||
GLResource res = ProgramRes(GetCtx(), real);
|
||||
ResourceId id = GetResourceManager()->RegisterResource(res);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
@@ -333,13 +333,13 @@ GLuint WrappedOpenGL::glCreateShaderProgramv(GLenum type, GLsizei count, const G
|
||||
|
||||
bool WrappedOpenGL::Serialise_glCreateProgram(GLuint program)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(program)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(GetCtx(), program)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
GLuint real = m_Real.glCreateProgram();
|
||||
|
||||
GLResource res = ProgramRes(real);
|
||||
GLResource res = ProgramRes(GetCtx(), real);
|
||||
|
||||
m_ResourceManager->RegisterResource(res);
|
||||
GetResourceManager()->AddLiveResource(id, res);
|
||||
@@ -352,7 +352,7 @@ GLuint WrappedOpenGL::glCreateProgram()
|
||||
{
|
||||
GLuint real = m_Real.glCreateProgram();
|
||||
|
||||
GLResource res = ProgramRes(real);
|
||||
GLResource res = ProgramRes(GetCtx(), real);
|
||||
ResourceId id = GetResourceManager()->RegisterResource(res);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
@@ -381,7 +381,7 @@ GLuint WrappedOpenGL::glCreateProgram()
|
||||
|
||||
bool WrappedOpenGL::Serialise_glLinkProgram(GLuint program)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(program)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(GetCtx(), program)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
@@ -401,7 +401,7 @@ void WrappedOpenGL::glLinkProgram(GLuint program)
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program));
|
||||
RDCASSERT(record);
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(LINKPROGRAM);
|
||||
@@ -414,7 +414,7 @@ void WrappedOpenGL::glLinkProgram(GLuint program)
|
||||
|
||||
bool WrappedOpenGL::Serialise_glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(program)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(GetCtx(), program)));
|
||||
SERIALISE_ELEMENT(uint32_t, index, uniformBlockIndex);
|
||||
SERIALISE_ELEMENT(uint32_t, binding, uniformBlockBinding);
|
||||
|
||||
@@ -432,7 +432,7 @@ void WrappedOpenGL::glUniformBlockBinding(GLuint program, GLuint uniformBlockInd
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program));
|
||||
RDCASSERT(record);
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(UNIFORM_BLOCKBIND);
|
||||
@@ -445,7 +445,7 @@ void WrappedOpenGL::glUniformBlockBinding(GLuint program, GLuint uniformBlockInd
|
||||
|
||||
bool WrappedOpenGL::Serialise_glBindAttribLocation(GLuint program, GLuint index, const GLchar *name_)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(program)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(GetCtx(), program)));
|
||||
SERIALISE_ELEMENT(uint32_t, idx, index);
|
||||
|
||||
string name = name_ ? name_ : "";
|
||||
@@ -465,7 +465,7 @@ void WrappedOpenGL::glBindAttribLocation(GLuint program, GLuint index, const GLc
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program));
|
||||
RDCASSERT(record);
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(BINDATTRIB_LOCATION);
|
||||
@@ -478,7 +478,7 @@ void WrappedOpenGL::glBindAttribLocation(GLuint program, GLuint index, const GLc
|
||||
|
||||
bool WrappedOpenGL::Serialise_glProgramParameteri(GLuint program, GLenum pname, GLint value)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(program)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(GetCtx(), program)));
|
||||
SERIALISE_ELEMENT(GLenum, PName, pname);
|
||||
SERIALISE_ELEMENT(int32_t, Value, value);
|
||||
|
||||
@@ -496,7 +496,7 @@ void WrappedOpenGL::glProgramParameteri(GLuint program, GLenum pname, GLint valu
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program));
|
||||
RDCASSERT(record);
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(PROGRAMPARAMETER);
|
||||
@@ -511,12 +511,12 @@ void WrappedOpenGL::glDeleteProgram(GLuint program)
|
||||
{
|
||||
m_Real.glDeleteProgram(program);
|
||||
|
||||
GetResourceManager()->UnregisterResource(ProgramRes(program));
|
||||
GetResourceManager()->UnregisterResource(ProgramRes(GetCtx(), program));
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glUseProgram(GLuint program)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(program)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(GetCtx(), program)));
|
||||
|
||||
if(m_State <= EXECUTING)
|
||||
{
|
||||
@@ -555,9 +555,9 @@ void WrappedOpenGL::glValidateProgramPipeline(GLuint pipeline)
|
||||
|
||||
bool WrappedOpenGL::Serialise_glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, pipe, GetResourceManager()->GetID(ProgramPipeRes(pipeline)));
|
||||
SERIALISE_ELEMENT(ResourceId, pipe, GetResourceManager()->GetID(ProgramPipeRes(GetCtx(), pipeline)));
|
||||
SERIALISE_ELEMENT(uint32_t, Stages, stages);
|
||||
SERIALISE_ELEMENT(ResourceId, prog, GetResourceManager()->GetID(ProgramRes(program)));
|
||||
SERIALISE_ELEMENT(ResourceId, prog, GetResourceManager()->GetID(ProgramRes(GetCtx(), program)));
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
@@ -583,25 +583,25 @@ void WrappedOpenGL::glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuin
|
||||
SCOPED_SERIALISE_CONTEXT(USE_PROGRAMSTAGES);
|
||||
Serialise_glUseProgramStages(pipeline, stages, program);
|
||||
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramPipeRes(pipeline));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramPipeRes(GetCtx(), pipeline));
|
||||
RDCASSERT(record);
|
||||
record->AddChunk(scope.Get());
|
||||
|
||||
GLResourceRecord *progrecord = GetResourceManager()->GetResourceRecord(ProgramRes(program));
|
||||
GLResourceRecord *progrecord = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program));
|
||||
record->AddParent(progrecord);
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glGenProgramPipelines(GLsizei n, GLuint* pipelines)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramPipeRes(*pipelines)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramPipeRes(GetCtx(), *pipelines)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
GLuint real = 0;
|
||||
m_Real.glGenProgramPipelines(1, &real);
|
||||
|
||||
GLResource res = ProgramPipeRes(real);
|
||||
GLResource res = ProgramPipeRes(GetCtx(), real);
|
||||
|
||||
ResourceId live = m_ResourceManager->RegisterResource(res);
|
||||
GetResourceManager()->AddLiveResource(id, res);
|
||||
@@ -616,7 +616,7 @@ void WrappedOpenGL::glGenProgramPipelines(GLsizei n, GLuint *pipelines)
|
||||
|
||||
for(GLsizei i=0; i < n; i++)
|
||||
{
|
||||
GLResource res = ProgramPipeRes(pipelines[i]);
|
||||
GLResource res = ProgramPipeRes(GetCtx(), pipelines[i]);
|
||||
ResourceId id = GetResourceManager()->RegisterResource(res);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
@@ -644,7 +644,7 @@ void WrappedOpenGL::glGenProgramPipelines(GLsizei n, GLuint *pipelines)
|
||||
|
||||
bool WrappedOpenGL::Serialise_glBindProgramPipeline(GLuint pipeline)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, (pipeline ? GetResourceManager()->GetID(ProgramPipeRes(pipeline)) : ResourceId()));
|
||||
SERIALISE_ELEMENT(ResourceId, id, (pipeline ? GetResourceManager()->GetID(ProgramPipeRes(GetCtx(), pipeline)) : ResourceId()));
|
||||
|
||||
if(m_State <= EXECUTING)
|
||||
{
|
||||
@@ -680,7 +680,7 @@ void WrappedOpenGL::glDeleteProgramPipelines(GLsizei n, const GLuint *pipelines)
|
||||
m_Real.glDeleteProgramPipelines(n, pipelines);
|
||||
|
||||
for(GLsizei i=0; i < n; i++)
|
||||
GetResourceManager()->UnregisterResource(ProgramPipeRes(pipelines[i]));
|
||||
GetResourceManager()->UnregisterResource(ProgramPipeRes(GetCtx(), pipelines[i]));
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
|
||||
@@ -28,14 +28,14 @@
|
||||
|
||||
bool WrappedOpenGL::Serialise_glGenTextures(GLsizei n, GLuint* textures)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(*textures)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), *textures)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
GLuint real = 0;
|
||||
m_Real.glGenTextures(1, &real);
|
||||
|
||||
GLResource res = TextureRes(real);
|
||||
GLResource res = TextureRes(GetCtx(), real);
|
||||
|
||||
ResourceId live = m_ResourceManager->RegisterResource(res);
|
||||
GetResourceManager()->AddLiveResource(id, res);
|
||||
@@ -53,7 +53,7 @@ void WrappedOpenGL::glGenTextures(GLsizei n, GLuint* textures)
|
||||
|
||||
for(GLsizei i=0; i < n; i++)
|
||||
{
|
||||
GLResource res = TextureRes(textures[i]);
|
||||
GLResource res = TextureRes(GetCtx(), textures[i]);
|
||||
ResourceId id = GetResourceManager()->RegisterResource(res);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
@@ -86,13 +86,13 @@ void WrappedOpenGL::glDeleteTextures(GLsizei n, const GLuint *textures)
|
||||
m_Real.glDeleteTextures(n, textures);
|
||||
|
||||
for(GLsizei i=0; i < n; i++)
|
||||
GetResourceManager()->UnregisterResource(TextureRes(textures[i]));
|
||||
GetResourceManager()->UnregisterResource(TextureRes(GetCtx(), textures[i]));
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glBindTexture(GLenum target, GLuint texture)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, Target, target);
|
||||
SERIALISE_ELEMENT(ResourceId, Id, (texture ? GetResourceManager()->GetID(TextureRes(texture)) : ResourceId()));
|
||||
SERIALISE_ELEMENT(ResourceId, Id, (texture ? GetResourceManager()->GetID(TextureRes(GetCtx(), texture)) : ResourceId()));
|
||||
|
||||
if(m_State == WRITING_IDLE)
|
||||
{
|
||||
@@ -135,7 +135,7 @@ void WrappedOpenGL::glBindTexture(GLenum target, GLuint texture)
|
||||
}
|
||||
else if(m_State < WRITING)
|
||||
{
|
||||
m_Textures[GetResourceManager()->GetID(TextureRes(texture))].curType = target;
|
||||
m_Textures[GetResourceManager()->GetID(TextureRes(GetCtx(), texture))].curType = target;
|
||||
}
|
||||
|
||||
if(texture == 0)
|
||||
@@ -146,7 +146,7 @@ void WrappedOpenGL::glBindTexture(GLenum target, GLuint texture)
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *r = m_TextureRecord[m_TextureUnit] = GetResourceManager()->GetResourceRecord(TextureRes(texture));
|
||||
GLResourceRecord *r = m_TextureRecord[m_TextureUnit] = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture));
|
||||
|
||||
if(r->datatype)
|
||||
{
|
||||
@@ -177,8 +177,8 @@ bool WrappedOpenGL::Serialise_glTextureView(GLuint texture, GLenum target, GLuin
|
||||
SERIALISE_ELEMENT(uint32_t, NumLevels, numlevels);
|
||||
SERIALISE_ELEMENT(uint32_t, MinLayer, minlayer);
|
||||
SERIALISE_ELEMENT(uint32_t, NumLayers, numlayers);
|
||||
SERIALISE_ELEMENT(ResourceId, texid, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, origid, GetResourceManager()->GetID(TextureRes(origtexture)));
|
||||
SERIALISE_ELEMENT(ResourceId, texid, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, origid, GetResourceManager()->GetID(TextureRes(GetCtx(), origtexture)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
@@ -198,8 +198,8 @@ void WrappedOpenGL::glTextureView(GLuint texture, GLenum target, GLuint origtext
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture));
|
||||
GLResourceRecord *origrecord = GetResourceManager()->GetResourceRecord(TextureRes(origtexture));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture));
|
||||
GLResourceRecord *origrecord = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), origtexture));
|
||||
RDCASSERT(record && origrecord);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(TEXTURE_VIEW);
|
||||
@@ -219,7 +219,7 @@ void WrappedOpenGL::glTextureView(GLuint texture, GLenum target, GLuint origtext
|
||||
bool WrappedOpenGL::Serialise_glGenerateTextureMipmapEXT(GLuint texture, GLenum target)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, Target, target);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
@@ -245,7 +245,7 @@ void WrappedOpenGL::glGenerateTextureMipmapEXT(GLuint texture, GLenum target)
|
||||
SCOPED_SERIALISE_CONTEXT(GENERATE_MIPMAP);
|
||||
Serialise_glGenerateTextureMipmapEXT(texture, target);
|
||||
|
||||
ResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture));
|
||||
ResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture));
|
||||
RDCASSERT(record);
|
||||
if(record)
|
||||
record->AddChunk(scope.Get());
|
||||
@@ -285,8 +285,8 @@ bool WrappedOpenGL::Serialise_glCopyImageSubData(GLuint srcName, GLenum srcTarge
|
||||
GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ,
|
||||
GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, srcid, GetResourceManager()->GetID(TextureRes(srcName)));
|
||||
SERIALISE_ELEMENT(ResourceId, dstid, GetResourceManager()->GetID(TextureRes(dstName)));
|
||||
SERIALISE_ELEMENT(ResourceId, srcid, GetResourceManager()->GetID(TextureRes(GetCtx(), srcName)));
|
||||
SERIALISE_ELEMENT(ResourceId, dstid, GetResourceManager()->GetID(TextureRes(GetCtx(), dstName)));
|
||||
SERIALISE_ELEMENT(GLenum, SourceTarget, srcTarget);
|
||||
SERIALISE_ELEMENT(GLenum, DestTarget, dstTarget);
|
||||
SERIALISE_ELEMENT(uint32_t, SourceLevel, srcLevel);
|
||||
@@ -322,8 +322,8 @@ void WrappedOpenGL::glCopyImageSubData(GLuint srcName, GLenum srcTarget, GLint s
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *srcrecord = GetResourceManager()->GetResourceRecord(TextureRes(srcName));
|
||||
GLResourceRecord *dstrecord = GetResourceManager()->GetResourceRecord(TextureRes(dstName));
|
||||
GLResourceRecord *srcrecord = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), srcName));
|
||||
GLResourceRecord *dstrecord = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), dstName));
|
||||
RDCASSERT(srcrecord && dstrecord);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(COPY_SUBIMAGE);
|
||||
@@ -350,7 +350,7 @@ bool WrappedOpenGL::Serialise_glTextureParameteriEXT(GLuint texture, GLenum targ
|
||||
SERIALISE_ELEMENT(GLenum, Target, target);
|
||||
SERIALISE_ELEMENT(GLenum, PName, pname);
|
||||
SERIALISE_ELEMENT(int32_t, Param, param);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
@@ -366,7 +366,7 @@ void WrappedOpenGL::glTextureParameteriEXT(GLuint texture, GLenum target, GLenum
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture));
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(TEXPARAMETERI);
|
||||
@@ -403,7 +403,7 @@ bool WrappedOpenGL::Serialise_glTextureParameterivEXT(GLuint texture, GLenum tar
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, Target, target);
|
||||
SERIALISE_ELEMENT(GLenum, PName, pname);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
const size_t nParams = (PName == eGL_TEXTURE_BORDER_COLOR || PName == eGL_TEXTURE_SWIZZLE_RGBA ? 4U : 1U);
|
||||
SERIALISE_ELEMENT_ARR(int32_t, Params, params, nParams);
|
||||
|
||||
@@ -423,7 +423,7 @@ void WrappedOpenGL::glTextureParameterivEXT(GLuint texture, GLenum target, GLenu
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture));
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(TEXPARAMETERIV);
|
||||
@@ -461,7 +461,7 @@ bool WrappedOpenGL::Serialise_glTextureParameterfEXT(GLuint texture, GLenum targ
|
||||
SERIALISE_ELEMENT(GLenum, Target, target);
|
||||
SERIALISE_ELEMENT(GLenum, PName, pname);
|
||||
SERIALISE_ELEMENT(float, Param, param);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
@@ -477,7 +477,7 @@ void WrappedOpenGL::glTextureParameterfEXT(GLuint texture, GLenum target, GLenum
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture));
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(TEXPARAMETERF);
|
||||
@@ -514,7 +514,7 @@ bool WrappedOpenGL::Serialise_glTextureParameterfvEXT(GLuint texture, GLenum tar
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, Target, target);
|
||||
SERIALISE_ELEMENT(GLenum, PName, pname);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
const size_t nParams = (PName == eGL_TEXTURE_BORDER_COLOR || PName == eGL_TEXTURE_SWIZZLE_RGBA ? 4U : 1U);
|
||||
SERIALISE_ELEMENT_ARR(float, Params, params, nParams);
|
||||
|
||||
@@ -534,7 +534,7 @@ void WrappedOpenGL::glTextureParameterfvEXT(GLuint texture, GLenum target, GLenu
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture));
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(TEXPARAMETERFV);
|
||||
@@ -726,7 +726,7 @@ bool WrappedOpenGL::Serialise_glTextureStorage1DEXT(GLuint texture, GLenum targe
|
||||
SERIALISE_ELEMENT(uint32_t, Levels, levels);
|
||||
SERIALISE_ELEMENT(GLenum, Format, internalformat);
|
||||
SERIALISE_ELEMENT(uint32_t, Width, width);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
@@ -748,7 +748,7 @@ void WrappedOpenGL::glTextureStorage1DEXT(GLuint texture, GLenum target, GLsizei
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture));
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(TEXSTORAGE1D);
|
||||
@@ -788,7 +788,7 @@ bool WrappedOpenGL::Serialise_glTextureStorage2DEXT(GLuint texture, GLenum targe
|
||||
SERIALISE_ELEMENT(GLenum, Format, internalformat);
|
||||
SERIALISE_ELEMENT(uint32_t, Width, width);
|
||||
SERIALISE_ELEMENT(uint32_t, Height, height);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
@@ -810,7 +810,7 @@ void WrappedOpenGL::glTextureStorage2DEXT(GLuint texture, GLenum target, GLsizei
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture));
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(TEXSTORAGE2D);
|
||||
@@ -857,7 +857,7 @@ bool WrappedOpenGL::Serialise_glTextureStorage3DEXT(GLuint texture, GLenum targe
|
||||
SERIALISE_ELEMENT(uint32_t, Width, width);
|
||||
SERIALISE_ELEMENT(uint32_t, Height, height);
|
||||
SERIALISE_ELEMENT(uint32_t, Depth, depth);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
@@ -879,7 +879,7 @@ void WrappedOpenGL::glTextureStorage3DEXT(GLuint texture, GLenum target, GLsizei
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture));
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(TEXSTORAGE3D);
|
||||
@@ -926,7 +926,7 @@ bool WrappedOpenGL::Serialise_glTextureSubImage1DEXT(GLuint texture, GLenum targ
|
||||
SERIALISE_ELEMENT(uint32_t, Width, width);
|
||||
SERIALISE_ELEMENT(GLenum, Format, format);
|
||||
SERIALISE_ELEMENT(GLenum, Type, type);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
|
||||
GLint align = 1;
|
||||
m_Real.glGetIntegerv(eGL_UNPACK_ALIGNMENT, &align);
|
||||
@@ -954,7 +954,7 @@ void WrappedOpenGL::glTextureSubImage1DEXT(GLuint texture, GLenum target, GLint
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture));
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(TEXSUBIMAGE1D);
|
||||
@@ -997,7 +997,7 @@ bool WrappedOpenGL::Serialise_glTextureSubImage2DEXT(GLuint texture, GLenum targ
|
||||
SERIALISE_ELEMENT(uint32_t, Height, height);
|
||||
SERIALISE_ELEMENT(GLenum, Format, format);
|
||||
SERIALISE_ELEMENT(GLenum, Type, type);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
|
||||
GLint align = 1;
|
||||
m_Real.glGetIntegerv(eGL_UNPACK_ALIGNMENT, &align);
|
||||
@@ -1028,7 +1028,7 @@ void WrappedOpenGL::glTextureSubImage2DEXT(GLuint texture, GLenum target, GLint
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture));
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(TEXSUBIMAGE2D);
|
||||
@@ -1073,7 +1073,7 @@ bool WrappedOpenGL::Serialise_glTextureSubImage3DEXT(GLuint texture, GLenum targ
|
||||
SERIALISE_ELEMENT(uint32_t, Depth, depth);
|
||||
SERIALISE_ELEMENT(GLenum, Format, format);
|
||||
SERIALISE_ELEMENT(GLenum, Type, type);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
|
||||
GLint align = 1;
|
||||
m_Real.glGetIntegerv(eGL_UNPACK_ALIGNMENT, &align);
|
||||
@@ -1104,7 +1104,7 @@ void WrappedOpenGL::glTextureSubImage3DEXT(GLuint texture, GLenum target, GLint
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture));
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(TEXSUBIMAGE3D);
|
||||
@@ -1145,7 +1145,7 @@ bool WrappedOpenGL::Serialise_glCompressedTextureSubImage1DEXT(GLuint texture, G
|
||||
SERIALISE_ELEMENT(uint32_t, Width, width);
|
||||
SERIALISE_ELEMENT(GLenum, fmt, format);
|
||||
SERIALISE_ELEMENT(uint32_t, byteSize, imageSize);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
|
||||
SERIALISE_ELEMENT_BUF(byte *, buf, pixels, byteSize);
|
||||
|
||||
@@ -1165,7 +1165,7 @@ void WrappedOpenGL::glCompressedTextureSubImage1DEXT(GLuint texture, GLenum targ
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture));
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(TEXSUBIMAGE1D_COMPRESSED);
|
||||
@@ -1208,7 +1208,7 @@ bool WrappedOpenGL::Serialise_glCompressedTextureSubImage2DEXT(GLuint texture, G
|
||||
SERIALISE_ELEMENT(uint32_t, Height, height);
|
||||
SERIALISE_ELEMENT(GLenum, fmt, format);
|
||||
SERIALISE_ELEMENT(uint32_t, byteSize, imageSize);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
|
||||
SERIALISE_ELEMENT_BUF(byte *, buf, pixels, byteSize);
|
||||
|
||||
@@ -1228,7 +1228,7 @@ void WrappedOpenGL::glCompressedTextureSubImage2DEXT(GLuint texture, GLenum targ
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture));
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(TEXSUBIMAGE2D_COMPRESSED);
|
||||
@@ -1273,7 +1273,7 @@ bool WrappedOpenGL::Serialise_glCompressedTextureSubImage3DEXT(GLuint texture, G
|
||||
SERIALISE_ELEMENT(uint32_t, Depth, depth);
|
||||
SERIALISE_ELEMENT(GLenum, fmt, format);
|
||||
SERIALISE_ELEMENT(uint32_t, byteSize, imageSize);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
|
||||
SERIALISE_ELEMENT_BUF(byte *, buf, pixels, byteSize);
|
||||
|
||||
@@ -1293,7 +1293,7 @@ void WrappedOpenGL::glCompressedTextureSubImage3DEXT(GLuint texture, GLenum targ
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture));
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(TEXSUBIMAGE3D_COMPRESSED);
|
||||
@@ -1332,8 +1332,8 @@ bool WrappedOpenGL::Serialise_glTextureBufferRangeEXT(GLuint texture, GLenum tar
|
||||
SERIALISE_ELEMENT(uint64_t, offs, (uint64_t)offset);
|
||||
SERIALISE_ELEMENT(uint64_t, Size, (uint64_t)size);
|
||||
SERIALISE_ELEMENT(GLenum, fmt, internalformat);
|
||||
SERIALISE_ELEMENT(ResourceId, texid, GetResourceManager()->GetID(TextureRes(texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, bufid, GetResourceManager()->GetID(TextureRes(buffer)));
|
||||
SERIALISE_ELEMENT(ResourceId, texid, GetResourceManager()->GetID(TextureRes(GetCtx(), texture)));
|
||||
SERIALISE_ELEMENT(ResourceId, bufid, GetResourceManager()->GetID(TextureRes(GetCtx(), buffer)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
@@ -1352,7 +1352,7 @@ void WrappedOpenGL::glTextureBufferRangeEXT(GLuint texture, GLenum target, GLenu
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture));
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(TEXBUFFER_RANGE);
|
||||
|
||||
@@ -310,7 +310,7 @@ void WrappedOpenGL::glUniform4fv(GLint location, GLsizei count, const GLfloat *v
|
||||
|
||||
bool WrappedOpenGL::Serialise_glProgramUniformVector(GLuint program, GLint location, GLsizei count, const void *value, UniformType type)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(program)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(GetCtx(), program)));
|
||||
SERIALISE_ELEMENT(UniformType, Type, type);
|
||||
SERIALISE_ELEMENT(int32_t, Loc, location);
|
||||
SERIALISE_ELEMENT(uint32_t, Count, count);
|
||||
@@ -416,7 +416,7 @@ void WrappedOpenGL::glProgramUniform1i(GLuint program, GLint location, GLint v0)
|
||||
else
|
||||
{
|
||||
// TODO grab this at capture time as initial state for program resources
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program));
|
||||
RDCASSERT(record);
|
||||
record->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -439,7 +439,7 @@ void WrappedOpenGL::glProgramUniform1iv(GLuint program, GLint location, GLsizei
|
||||
else
|
||||
{
|
||||
// TODO grab this at capture time as initial state for program resources
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program));
|
||||
RDCASSERT(record);
|
||||
record->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -462,7 +462,7 @@ void WrappedOpenGL::glProgramUniform1fv(GLuint program, GLint location, GLsizei
|
||||
else
|
||||
{
|
||||
// TODO grab this at capture time as initial state for program resources
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program));
|
||||
RDCASSERT(record);
|
||||
record->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -485,7 +485,7 @@ void WrappedOpenGL::glProgramUniform1uiv(GLuint program, GLint location, GLsizei
|
||||
else
|
||||
{
|
||||
// TODO grab this at capture time as initial state for program resources
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program));
|
||||
RDCASSERT(record);
|
||||
record->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -508,7 +508,7 @@ void WrappedOpenGL::glProgramUniform2fv(GLuint program, GLint location, GLsizei
|
||||
else
|
||||
{
|
||||
// TODO grab this at capture time as initial state for program resources
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program));
|
||||
RDCASSERT(record);
|
||||
record->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -531,7 +531,7 @@ void WrappedOpenGL::glProgramUniform3fv(GLuint program, GLint location, GLsizei
|
||||
else
|
||||
{
|
||||
// TODO grab this at capture time as initial state for program resources
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program));
|
||||
RDCASSERT(record);
|
||||
record->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -554,7 +554,7 @@ void WrappedOpenGL::glProgramUniform4fv(GLuint program, GLint location, GLsizei
|
||||
else
|
||||
{
|
||||
// TODO grab this at capture time as initial state for program resources
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program));
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program));
|
||||
RDCASSERT(record);
|
||||
record->AddChunk(scope.Get());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user