public static void RunApplication(SpreadApplication app) { startTime = DateTime.Now; float lastFrameTime = GetTime(); while (WindowLayer.ShouldRender(app.ctx)) { WindowLayer.EnterRenderLoop(app.ctx); InternalRunners <HookUpdateAttribute>(app); app.Update(); UILayer.EnterUIFrame(); app.DrawUI(); UILayer.ExitUIFrame(); WindowLayer.ExitRenderLoop(app.ctx); app.time = GetTime(); app.deltaTime = GetTime() - lastFrameTime; lastFrameTime = GetTime(); } }
public static SpreadApplication LoadAssembly(string assemblyPath) { Type appType = GetApplicationType(assemblyPath); SpreadApplication app = appType.GetConstructor(new Type[] { }).Invoke(new object[] { }) as SpreadApplication; return(app); }
public static void InternalRunners <T>(SpreadApplication app) where T : Attribute { foreach (var field in app.GetType().GetFields()) { foreach (var method in field.FieldType.GetMethods()) { if (method.GetCustomAttribute <T>() != null) { method.Invoke(field.GetValue(app), new object[] { app }); } } } }
public Shader(string vertexRes, string fragmentRes) { uint vert = GraphicsLayer.compileShader(GraphicsLayer.GLShaderType.VertexShader, SpreadApplication.LoadTextFileResource(vertexRes)); uint frag = GraphicsLayer.compileShader(GraphicsLayer.GLShaderType.FragmentShader, SpreadApplication.LoadTextFileResource(fragmentRes)); program = GraphicsLayer.createVisualShader(vert, frag); GraphicsLayer.linkVisualShader(program); }
public void Update(SpreadApplication app) { GraphicsLayer.ClearColor(clearColor); }