//--------------------------------------------------------------------------------------
// Create Direct3D device and swap chain
//--------------------------------------------------------------------------------------
HRESULT InitDevice()
{
    g_pCore = new Core();
    g_pRenderSystem = g_pCore->GetRenderSystem();
    Scene* sc = g_pCore->CreateScene("TEST_SCENE");

    SceneObject* test_obj1 = sc->CreateObject("TEST_SCENE_OBJECT1");
    SceneObject* test_obj2 = sc->CreateObject("TEST_SCENE_OBJECT2");
    SceneObject* test_obj3 = sc->CreateObject("TEST_SCENE_OBJECT2");
    SceneObject* test_obj4 = sc->CreateObject("TEST_SCENE_OBJECT3");

    CameraComponent* camera = new CameraComponent("CAMERA_1", test_obj1, 20);
    test_obj1->AddComponent(camera);

    _lParametor win;
    win["window_name"] = "EditorWindow";
    win["full_screan_mode"] = "off";

    RECT rc;
    GetClientRect(g_hWnd, &rc);
    UINT width = rc.right - rc.left;
    UINT height = rc.bottom - rc.top;
    win["display_mode"] = StringConverter::toString(width, height, 32);
    win["window_handle"] = StringConverter::toString((int)g_hWnd);

    if (g_pRenderSystem != nullptr)
    {
        RenderWindow* window = g_pRenderSystem->CreateRenderWindow(win);

        window->SetCamera(camera);
    }

    return S_OK;
}