-
Notifications
You must be signed in to change notification settings - Fork 0
/
renderer.go
66 lines (53 loc) · 1.21 KB
/
renderer.go
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
/*
Copyright 2020 The goARRG Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package goarrg
type Renderer interface {
Draw() float64
Resize(int, int)
Destroy()
}
type GLProfile uint8
const (
GLProfileCore GLProfile = iota
GLProfileCompat
GLProfileES
)
type GLConfig struct {
Major uint8
Minor uint8
Profile GLProfile
}
type GLInstance interface {
ProcAddr() uintptr
SwapBuffers()
}
type GLRenderer interface {
Renderer
GLConfig() GLConfig
GLInit(GLInstance) error
}
type VkConfig struct {
API uint32
Layers []string
Extensions []string
}
type VkInstance interface {
Uintptr() uintptr
ProcAddr() uintptr
Surface() uintptr
}
type VkRenderer interface {
Renderer
VkConfig() VkConfig
VkInit(VkInstance) error
}