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 });
             }
         }
     }
 }
Exemple #4
0
        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);
        }
Exemple #5
0
 public void Update(SpreadApplication app)
 {
     GraphicsLayer.ClearColor(clearColor);
 }