tests: migrate render test to render framework
diff --git a/tests/xglrenderframework.cpp b/tests/xglrenderframework.cpp
index 46f6059..9eea3e5 100644
--- a/tests/xglrenderframework.cpp
+++ b/tests/xglrenderframework.cpp
@@ -28,7 +28,13 @@
 #include "xglrenderframework.h"
 #include "xglIntelExt.h"
 
-XglRenderFramework::XglRenderFramework()
+XglRenderFramework::XglRenderFramework() :
+    m_colorBlend( XGL_NULL_HANDLE ),
+    m_stateMsaa( XGL_NULL_HANDLE ),
+    m_stateDepthStencil( XGL_NULL_HANDLE ),
+    m_stateRaster( XGL_NULL_HANDLE ),
+    m_cmdBuffer( XGL_NULL_HANDLE ),
+    m_stateViewport( XGL_NULL_HANDLE )
 {
     m_render_target_fmt.channelFormat = XGL_CH_FMT_R8G8B8A8;
     m_render_target_fmt.numericFormat = XGL_NUM_FMT_UNORM;
@@ -36,11 +42,35 @@
 
 XglRenderFramework::~XglRenderFramework()
 {
-    xglDestroyObject(m_colorBlend);
-    xglDestroyObject(m_stateMsaa);
-    xglDestroyObject(m_stateDepthStencil);
-    xglDestroyObject(m_stateRaster);
-    xglDestroyObject(m_cmdBuffer);
+
+}
+
+void XglRenderFramework::InitFramework()
+{
+    XGL_RESULT err;
+
+    memset(&m_vtxBufferView, 0, sizeof(m_vtxBufferView));
+    m_vtxBufferView.sType = XGL_STRUCTURE_TYPE_MEMORY_VIEW_ATTACH_INFO;
+
+    memset(&m_constantBufferView, 0, sizeof(m_constantBufferView));
+    m_constantBufferView.sType = XGL_STRUCTURE_TYPE_MEMORY_VIEW_ATTACH_INFO;
+
+    err = xglInitAndEnumerateGpus(&app_info, NULL,
+                                  MAX_GPUS, &this->gpu_count, objs);
+    ASSERT_XGL_SUCCESS(err);
+    ASSERT_GE(1, this->gpu_count) << "No GPU available";
+
+    m_device = new XglDevice(0, objs[0]);
+    m_device->get_device_queue();
+}
+
+void XglRenderFramework::ShutdownFramework()
+{
+    if (m_colorBlend) xglDestroyObject(m_colorBlend);
+    if (m_stateMsaa) xglDestroyObject(m_stateMsaa);
+    if (m_stateDepthStencil) xglDestroyObject(m_stateDepthStencil);
+    if (m_stateRaster) xglDestroyObject(m_stateRaster);
+    if (m_cmdBuffer) xglDestroyObject(m_cmdBuffer);
 
     if (m_stateViewport) {
         xglDestroyObject(m_stateViewport);
@@ -51,9 +81,12 @@
 //        m_renderTarget->
 //        xglDestroyObject(*m_renderTarget);
     }
+
+    // reset the driver
+    xglInitAndEnumerateGpus(&this->app_info, XGL_NULL_HANDLE, 0, &gpu_count, XGL_NULL_HANDLE);
 }
 
-void XglRenderFramework::InitFramework()
+void XglRenderFramework::InitState()
 {
     XGL_RESULT err;