1 Star 0 Fork 0

toy80/vk

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
toy80-example-vk.go 1.52 KB
一键复制 编辑 原始数据 按行查看 历史
toy80 提交于 2021-06-22 12:15 +08:00 . 主仓库迁移到gitee, 修改相应的地址
package main
import (
"fmt"
"log"
"gitee.com/toy80/vk"
)
type Example struct {
instance vk.Instance
enumerateInstanceExtensionProperties vk.PfnEnumerateInstanceExtensionProperties
}
func (ex *Example) LoadProc(ppfn interface{}) error {
return vk.LoadInstanceProc(ex.instance, ppfn)
}
func (ex *Example) Init() {
// copy strings into C memory for obey "the rules"
appName, freeAppName := vk.CStr("Hello World!")
defer freeAppName()
engineName, freeEngineName := vk.CStr("Foo")
defer freeEngineName()
appInfo := vk.NewApplicationInfo()
defer appInfo.Free()
appInfo.PApplicationName = appName
appInfo.ApplicationVersion = vk.MakeVersion(1, 0, 0)
appInfo.PEngineName = engineName
appInfo.EngineVersion = vk.MakeVersion(1, 0, 0)
appInfo.ApiVersion = vk.API_VERSION_1_0
var createInfo vk.InstanceCreateInfo
createInfo.SType = vk.STRUCTURE_TYPE_INSTANCE_CREATE_INFO
createInfo.PApplicationInfo = appInfo
if ret := vk.CreateInstance(&createInfo, nil, &ex.instance); ret != vk.SUCCESS {
log.Fatalln("vk.CreateInstance():", ret)
}
if err := ex.LoadProc(&ex.enumerateInstanceExtensionProperties); err != nil {
log.Fatalln("Example.LoadProc():", err)
}
var numExts uint32
ex.enumerateInstanceExtensionProperties.Call(nil, &numExts, nil)
props := make([]vk.ExtensionProperties, numExts)
if numExts > 0 {
ex.enumerateInstanceExtensionProperties.Call(nil, &numExts, &props[0])
}
for _, prop := range props {
fmt.Println(vk.GoStr(&prop.ExtensionName), ":", prop.SpecVersion)
}
}
func main() {
var ex Example
ex.Init()
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/toy80/vk.git
git@gitee.com:toy80/vk.git
toy80
vk
vk
v1.2.177-alpha.1

搜索帮助