local json = require "LiteJson.json"
local inspect = require "inspect"
local AssetBrowser = require "./Scripts/Editor/AssetBrowser"
local EditorWindowManager = require "./Scripts/EditorGUI/EditorWindowManager"

local Editor = GameLab.Editor 
local Engine = GameLab.Engine
local Resource = GameLab.Engine.Resource
local Rendering = GameLab.Engine.Rendering 
local Debug = GameLab.Debug
local Window = GameLab.Editor.Window
local GL = GameLab.Engine.GL
local delegate = GameLab.Delegate

local app = GameLab.Editor.EditorApplication.New()

if app == nil then 
	Debug.LogError("app is nil")
end 

local mainWindow = Window.ContainerWindow.New({400, 400, 800, 500}, Window.EShowMode.MainWindow, {100, 100}, {700, 700}) 
mainWindow:SetTitle("GameLab")
mainWindow:SetIcon("./Data/Icon/GameLab.ico")

app:SetMainWindow(mainWindow:GetNative())
EditorWindowManager.SetMainWindow(mainWindow)

EditorWindowManager.TestGUIWindow()

-- local guiWindow = Window.GUIWindow.New() 
-- guiWindow:SetContainerWindow(mainWindow)
-- guiWindow:SetPosition({0,0, 400, 400})

-- local guiWindow2 = Window.GUIWindow.New() 
-- guiWindow2:SetContainerWindow(mainWindow)
-- guiWindow2:SetPosition({400,0, 400, 400})

local v = GameLab.Engine.Math.Vector4(1,2,3,4)

local c = Engine.Rendering.Color(1,1,1,1)

GL.ClearColor({1,1,1,1})
GL.Clear(GL.EBufferType.ColorBuffer) 

local files = {
	"README.txt",
	"README.txt",
	"README.txt",
	"README.txt",
	"README.txt",
	"README.txt",
	"README.txt",
	"README.txt",
	"README.txt",
}

local imgData = Engine.Resource.LoadImageData("./Resources/Images/brickwall.jpg")

local tex = Engine.Resource.LoadTexture("./Resources/Images/brickwall.jpg")

local request = Engine.Resource.LoadImageDataAsync("./Resources/Images/brickwall.jpg")

local font = Engine.GUI.Font.New("./Resources/Font/msyh.ttc", {512, 512}, 5, 5)
_G["default_font"] =  font 

local v = GameLab.Engine.Math.Vector2(10.002, 2.334)

while true do

	app:OnStep()
	app:PullMessage()

end