Logo
Task.h
1#pragma once
2
3#include "Types.h"
4#include "base/Task.h"
5
6using namespace System;
7using namespace System::Runtime::InteropServices;
8using namespace System::Text;
9
10namespace XXSharpKmyBase{
11
12 class subTask;
13
14 private ref class Task{
15
16 public:
17
18 subTask *obj;
19
20 Task();
21 void Release();
22 static void addTask(Task ^t);
23 static void removeTask(Task ^t);
24 static void run(bool flg);
25 static void onInitialize(void* managed);
26 static void onFinalize(void* managed);
27 static void onStartFixedUpdate(void* manged, float delta);
28 static void onAfterAnimate(void* manged, float delta);
29 static void onAfterSimulate(void* manged, float delta);
30 static void onUpdate(void* managed, float elapsed);
31 static void shutdown();
32 static void setTimeScale(float);
33 virtual void initialize();
34 virtual void update(float);
35 virtual void startFixedUpdate(float) {}
36 virtual void afterAnimate(float) {}
37 virtual void afterSimulate(float) {}
38 virtual void finalize();
39
40 System::Runtime::InteropServices::GCHandle handle;
41
42 };
43
44 class subTask : public kmyBase::Task {
45
46 public:
47 USE_MEMORY_TRACKING;
48
49 subTask(void* ptr);
50 const char* name()override;
51 void initialize()override;
52 void finalize()override;
53 void update(float elapsed)override;
54 void startFixedUpdate(float)override;
55 void afterAnimate(float)override;
56 void afterSimulate(float)override;
57 void* managedTask;
58 };
59
60}