[SOLVED]Live Object with DirectX11
Posted: Mon Jan 28, 2013 20:47
um is anyone else having problems with live objects?
using the directx 11 debug layer, i get messages of live objects. i only initialize the system and draw a window (as described in the beginner tuts), and that works like a charm too.
the CEGUI.log does not mention anything out of the ordinary, only the resources loaded, no errors or warnings (which is to be expected, since everything works perfectly).
however the library doesnt seem to release COM interfaces properly. for that single window i get 21 unreleased objects. without creating anything (not even a root window), but just loading resources, which is basically the code of beginner tut 1 through 3, i get 13 live objects.
am i missing some shutdown method here?
please don't tell me i am forced to use smartpointers or something. ive got too much code which is 100% unmanaged, so i'd really appreciate some cleanup function.
and if there already are some, make sure to mention them in the beginner tuts
i posted this here already, an admin/mod might want to remove it there, since it is not on topic.
EDIT: after fooling around for a while and checking for live objects i come to the conclusion that the destroy() methods cleans up any windows properly, without leaks. still unsure how to clear everything else.
here a simplified list of live objects and how many (unnamed because they don't have debug names assigned to them):
Buffer: unnamed,1
ShaderResourceView: unnamed,1
Texture2D: unnamed,1
ShaderResourceView: unnamed,2
Texture2D: unnamed,1
InputLayout: unnamed,1
PixelShader: unnamed,1
VertexShader: unnamed,1
PixelShader: unnamed,1
VertexShader: unnamed,1
BlendState: unnamed,1
BlendState: unnamed,1
RasterizerState: unnamed,1
Buffer: unnamed,1
DepthStencilState: unnamed,1
Sampler: unnamed,1
My suggestion: assign debug names via directx's SetPrivateData function by default (in the appropriate CEGUI file) when building the debug version, helps debugging a lot.
also these interfaces need to be released somehow, i cant figure out how.
using the directx 11 debug layer, i get messages of live objects. i only initialize the system and draw a window (as described in the beginner tuts), and that works like a charm too.
the CEGUI.log does not mention anything out of the ordinary, only the resources loaded, no errors or warnings (which is to be expected, since everything works perfectly).
however the library doesnt seem to release COM interfaces properly. for that single window i get 21 unreleased objects. without creating anything (not even a root window), but just loading resources, which is basically the code of beginner tut 1 through 3, i get 13 live objects.
am i missing some shutdown method here?
please don't tell me i am forced to use smartpointers or something. ive got too much code which is 100% unmanaged, so i'd really appreciate some cleanup function.
and if there already are some, make sure to mention them in the beginner tuts
i posted this here already, an admin/mod might want to remove it there, since it is not on topic.
EDIT: after fooling around for a while and checking for live objects i come to the conclusion that the destroy() methods cleans up any windows properly, without leaks. still unsure how to clear everything else.
here a simplified list of live objects and how many (unnamed because they don't have debug names assigned to them):
Buffer: unnamed,1
ShaderResourceView: unnamed,1
Texture2D: unnamed,1
ShaderResourceView: unnamed,2
Texture2D: unnamed,1
InputLayout: unnamed,1
PixelShader: unnamed,1
VertexShader: unnamed,1
PixelShader: unnamed,1
VertexShader: unnamed,1
BlendState: unnamed,1
BlendState: unnamed,1
RasterizerState: unnamed,1
Buffer: unnamed,1
DepthStencilState: unnamed,1
Sampler: unnamed,1
My suggestion: assign debug names via directx's SetPrivateData function by default (in the appropriate CEGUI file) when building the debug version, helps debugging a lot.
also these interfaces need to be released somehow, i cant figure out how.