小编hun*_*tis的帖子

"不能取地址"和"不能调用指针方法"

这编译和工作:

diff := projected.Minus(c.Origin)
dir := diff.Normalize()
Run Code Online (Sandbox Code Playgroud)

这不会(产生标题中的错误):

dir := projected.Minus(c.Origin).Normalize()
Run Code Online (Sandbox Code Playgroud)

有人可以帮我理解为什么吗?(学习Go)

以下是这些方法:

// Minus subtracts another vector from this one
func (a *Vector3) Minus(b Vector3) Vector3 {
    return Vector3{a.X - b.X, a.Y - b.Y, a.Z - b.Z}
}

// Normalize makes the vector of length 1
func (a *Vector3) Normalize() Vector3 {
    d := a.Length()
    return Vector3{a.X / d, a.Y / d, a.Z / d}
}
Run Code Online (Sandbox Code Playgroud)

methods struct pointers go

12
推荐指数
2
解决办法
9724
查看次数

golang 程序配置文件中的 runtime.kevent 是什么?

我正在分析一个程序,其中绝大多数 (86%) 的时间都花在两个运行时函数上:kevent 和 selectgo。我理解select,但我不知道kevent是什么(所以我不知道从哪里开始优化):

Showing top 10 nodes out of 33
      flat  flat%   sum%        cum   cum%
   114.63s 65.79% 65.79%    114.63s 65.79%  runtime.kevent /usr/local/Cellar/go/1.9.2/libexec/src/runtime/sys_darwin_amd64.s
    19.26s 11.05% 76.85%     35.90s 20.60%  runtime.selectgo /usr/local/Cellar/go/1.9.2/libexec/src/runtime/select.go
Run Code Online (Sandbox Code Playgroud)

optimization profiling go

4
推荐指数
1
解决办法
903
查看次数

将单个纹理的子集渲染到 WebGL 画布上的最快方法是什么?

如果您有一个宽度/高度的单一幂次方纹理(例如 2048),并且您希望将其缩放和平移的子集(例如缩小的 64x92 大小的图块)尽可能快地移到另一个纹理上(作为缓冲区)所以它可以在不脏时被缓存),然后将该纹理绘制到 webgl 画布上,并且您没有更多要求 - 最快的策略是什么?

它是首先加载源纹理,将空纹理绑定到帧缓冲区,将源渲染drawElementsInstancedANGLE到帧缓冲区,然后解除绑定帧缓冲区并渲染到画布?

我对 WebGL 不太了解,我正在尝试编写一个非状态版本的 https://github.com/kutuluk/js13k-2d(它只使用 draw() 调用而不是维持状态的精灵,因为我会有数百万个精灵)。在我深入杂草之前,我希望得到一些反馈。

webgl

2
推荐指数
1
解决办法
452
查看次数

标签 统计

go ×2

methods ×1

optimization ×1

pointers ×1

profiling ×1

struct ×1

webgl ×1