-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRender.java
More file actions
77 lines (67 loc) · 2.19 KB
/
Copy pathRender.java
File metadata and controls
77 lines (67 loc) · 2.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package media;
import java.awt.Graphics2D;
import java.awt.*;
import java.util.ArrayList;
import java.util.List;
public class Render extends Canvas {
public static int currentSlide = 0;
public static int elapsedTime = 0;
public List<IMediaElement> elementList = new ArrayList<>();
private int startTime = (int) System.currentTimeMillis() / 1000;
public void resetTime(){
elapsedTime = 0;
startTime = (int) System.currentTimeMillis() / 1000;
}
// Update for new slide with specified number
public void updateSlide(List<IMediaElement> elements, int slideNumber){
resetTime();
currentSlide = slideNumber;
}
// Update for new slide
public void updateSlide(List<IMediaElement> elements){
resetTime();
currentSlide++;
}
public Render() {
super();
}
public Render(GraphicsConfiguration config) {
super(config);
}
@Override
public void paint(Graphics g) {
super.paint(g);
elapsedTime = (int) System.currentTimeMillis() / 1000 - startTime;
Graphics2D g2 = (Graphics2D) g;
for(IMediaElement element: elementList){
if (element.getStarttime() < elapsedTime || element.getEndtime() > elapsedTime)
continue; // Not in range...
switch (element.getType()){
case TEXT:
g2.drawString((String) element.getDrawableContent(), element.getX(), element.getY());
break;
case AUDIO:
((Audio) element).start();
break;
case IMAGE:
// TODO: add render options for these
break;
case SHAPE:
break;
case VIDEO:
break;
case GRAPHICS2D:
break;
case GRAPHICS3D:
break;
case EMPTY: // Pass
default:
break;
}
}
}
@Override
public void update(Graphics g) {
super.update(g);
}
}