layers: Update ObjectTracker layer to be generated and support callbacks
Added some code to render_tests.cpp to support Dbg callbacks and ObjectTracker extensions, but code is #defined off by default.
diff --git a/tests/render_tests.cpp b/tests/render_tests.cpp
index 362e6fd..4227efb 100644
--- a/tests/render_tests.cpp
+++ b/tests/render_tests.cpp
@@ -61,6 +61,9 @@
using namespace std;
#include <xgl.h>
+#ifdef PRINT_OBJECTS
+#include "../layers/object_track.h"
+#endif
#ifdef DEBUG_CALLBACK
#include <xglDbg.h>
#endif
@@ -85,7 +88,18 @@
const XGL_CHAR* pMsg,
XGL_VOID* pUserData)
{
- printf("DEBUG : %s\n", pMsg);
+ switch (msgType)
+ {
+ case XGL_DBG_MSG_WARNING:
+ printf("CALLBACK WARNING : %s\n", pMsg);
+ break;
+ case XGL_DBG_MSG_ERROR:
+ printf("CALLBACK ERROR : %s\n", pMsg);
+ break;
+ default:
+ printf("EATING Msg of type %u\n", msgType);
+ break;
+ }
}
#endif
//--------------------------------------------------------------------------------------
@@ -488,11 +502,6 @@
ASSERT_XGL_SUCCESS(err);
}
-void XglRenderTest::DrawRotatedTriangleTest()
-{
- // TODO : This test will pass a matrix into VS to affect triangle orientation.
-}
-
void XglRenderTest::DrawTriangleTest(const char *vertShaderText, const char *fragShaderText)
{
XGL_PIPELINE pipeline;
@@ -1599,9 +1608,22 @@
}
InitConstantBuffer(bufSize, sizeof(XGL_FLOAT), (const void*) &data);
-
DrawTriangleVSUniform(vertShaderText, fragShaderText, 1);
RotateTriangleVSUniform(Projection, View, Model);
+#ifdef PRINT_OBJECTS
+ //XGL_UINT64 objTrackGetObjectCount(XGL_OBJECT_TYPE type)
+ OBJ_TRACK_GET_OBJECT_COUNT pObjTrackGetObjectCount = (OBJ_TRACK_GET_OBJECT_COUNT)xglGetProcAddr(gpu(), (XGL_CHAR*)"objTrackGetObjectCount");
+ XGL_UINT64 numObjects = pObjTrackGetObjectCount(XGL_OBJECT_TYPE_ANY);
+ //OBJ_TRACK_GET_OBJECTS pGetObjsFunc = xglGetProcAddr(gpu(), (XGL_CHAR*)"objTrackGetObjects");
+ printf("DEBUG : Number of Objects : %lu\n", numObjects);
+ OBJ_TRACK_GET_OBJECTS pObjTrackGetObjs = (OBJ_TRACK_GET_OBJECTS)xglGetProcAddr(gpu(), (XGL_CHAR*)"objTrackGetObjects");
+ OBJTRACK_NODE* pObjNodeArray = (OBJTRACK_NODE*)malloc(sizeof(OBJTRACK_NODE)*numObjects);
+ pObjTrackGetObjs(XGL_OBJECT_TYPE_ANY, numObjects, pObjNodeArray);
+ for (i=0; i < numObjects; i++) {
+ printf("Object %i of type %s has objID (%p) and %lu uses\n", i, string_XGL_OBJECT_TYPE(pObjNodeArray[i].objType), pObjNodeArray[i].pObj, pObjNodeArray[i].numUses);
+ }
+ free(pObjNodeArray);
+#endif
}
TEST_F(XglRenderTest, XGLTriangle_FragColor)
@@ -1703,11 +1725,6 @@
DrawTriangleTest(vertShaderText, fragShaderText);
}
-TEST_F(XglRenderTest, RotatedTriangle) {
- DrawRotatedTriangleTest();
-}
-
-
TEST_F(XglRenderTest, TriangleWithVertexFetch)
{
static const char *vertShaderText =