代码拉取完成,页面将自动刷新
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()
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。