mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 07:35:40 +00:00
gpu/internal/opengl: remove "gpu" prefix from type names
Refactor only. Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
@@ -80,8 +80,8 @@ type glState struct {
|
||||
}
|
||||
|
||||
type state struct {
|
||||
prog *gpuProgram
|
||||
layout *gpuInputLayout
|
||||
prog *program
|
||||
layout *inputLayout
|
||||
buffer bufferBinding
|
||||
}
|
||||
|
||||
@@ -91,12 +91,12 @@ type bufferBinding struct {
|
||||
stride int
|
||||
}
|
||||
|
||||
type gpuTimer struct {
|
||||
type timer struct {
|
||||
funcs *gl.Functions
|
||||
obj gl.Query
|
||||
}
|
||||
|
||||
type gpuTexture struct {
|
||||
type texture struct {
|
||||
backend *Backend
|
||||
obj gl.Texture
|
||||
triple textureTriple
|
||||
@@ -104,13 +104,13 @@ type gpuTexture struct {
|
||||
height int
|
||||
}
|
||||
|
||||
type gpuFramebuffer struct {
|
||||
type framebuffer struct {
|
||||
backend *Backend
|
||||
obj gl.Framebuffer
|
||||
foreign bool
|
||||
}
|
||||
|
||||
type gpuBuffer struct {
|
||||
type buffer struct {
|
||||
backend *Backend
|
||||
hasBuffer bool
|
||||
obj gl.Buffer
|
||||
@@ -122,18 +122,18 @@ type gpuBuffer struct {
|
||||
data []byte
|
||||
}
|
||||
|
||||
type gpuProgram struct {
|
||||
type program struct {
|
||||
backend *Backend
|
||||
obj gl.Program
|
||||
vertUniforms uniformsTracker
|
||||
fragUniforms uniformsTracker
|
||||
storage [storageBindings]*gpuBuffer
|
||||
storage [storageBindings]*buffer
|
||||
}
|
||||
|
||||
type uniformsTracker struct {
|
||||
locs []uniformLocation
|
||||
size int
|
||||
buf *gpuBuffer
|
||||
buf *buffer
|
||||
version int
|
||||
}
|
||||
|
||||
@@ -144,7 +144,7 @@ type uniformLocation struct {
|
||||
size int
|
||||
}
|
||||
|
||||
type gpuInputLayout struct {
|
||||
type inputLayout struct {
|
||||
inputs []shader.InputLocation
|
||||
layout []shader.InputDesc
|
||||
}
|
||||
@@ -217,7 +217,7 @@ func (b *Backend) BeginFrame(target driver.RenderTarget, clear bool, viewport im
|
||||
switch t := target.(type) {
|
||||
case driver.OpenGLRenderTarget:
|
||||
renderFBO = gl.Framebuffer(t)
|
||||
case *gpuFramebuffer:
|
||||
case *framebuffer:
|
||||
renderFBO = t.obj
|
||||
default:
|
||||
panic(fmt.Errorf("opengl: invalid render target type: %T", target))
|
||||
@@ -256,7 +256,7 @@ func (b *Backend) BeginFrame(target driver.RenderTarget, clear bool, viewport im
|
||||
if b.sRGBFBO != nil && !clear {
|
||||
b.Clear(0, 0, 0, 0)
|
||||
}
|
||||
return &gpuFramebuffer{backend: b, obj: renderFBO, foreign: true}
|
||||
return &framebuffer{backend: b, obj: renderFBO, foreign: true}
|
||||
}
|
||||
|
||||
func (b *Backend) EndFrame() {
|
||||
@@ -623,7 +623,7 @@ func (b *Backend) Caps() driver.Caps {
|
||||
}
|
||||
|
||||
func (b *Backend) NewTimer() driver.Timer {
|
||||
return &gpuTimer{
|
||||
return &timer{
|
||||
funcs: b.funcs,
|
||||
obj: b.funcs.CreateQuery(),
|
||||
}
|
||||
@@ -635,9 +635,9 @@ func (b *Backend) IsTimeContinuous() bool {
|
||||
|
||||
func (b *Backend) NewFramebuffer(tex driver.Texture) (driver.Framebuffer, error) {
|
||||
glErr(b.funcs)
|
||||
gltex := tex.(*gpuTexture)
|
||||
gltex := tex.(*texture)
|
||||
fb := b.funcs.CreateFramebuffer()
|
||||
fbo := &gpuFramebuffer{backend: b, obj: fb}
|
||||
fbo := &framebuffer{backend: b, obj: fb}
|
||||
b.BindFramebuffer(fbo)
|
||||
if err := glErr(b.funcs); err != nil {
|
||||
fbo.Release()
|
||||
@@ -653,7 +653,7 @@ func (b *Backend) NewFramebuffer(tex driver.Texture) (driver.Framebuffer, error)
|
||||
|
||||
func (b *Backend) NewTexture(format driver.TextureFormat, width, height int, minFilter, magFilter driver.TextureFilter, binding driver.BufferBinding) (driver.Texture, error) {
|
||||
glErr(b.funcs)
|
||||
tex := &gpuTexture{backend: b, obj: b.funcs.CreateTexture(), width: width, height: height}
|
||||
tex := &texture{backend: b, obj: b.funcs.CreateTexture(), width: width, height: height}
|
||||
switch format {
|
||||
case driver.TextureFormatFloat:
|
||||
tex.triple = b.floatTriple
|
||||
@@ -684,7 +684,7 @@ func (b *Backend) NewTexture(format driver.TextureFormat, width, height int, min
|
||||
|
||||
func (b *Backend) NewBuffer(typ driver.BufferBinding, size int) (driver.Buffer, error) {
|
||||
glErr(b.funcs)
|
||||
buf := &gpuBuffer{backend: b, typ: typ, size: size}
|
||||
buf := &buffer{backend: b, typ: typ, size: size}
|
||||
if typ&driver.BufferBindingUniforms != 0 {
|
||||
if typ != driver.BufferBindingUniforms {
|
||||
return nil, errors.New("uniforms buffers cannot be bound as anything else")
|
||||
@@ -711,7 +711,7 @@ func (b *Backend) NewBuffer(typ driver.BufferBinding, size int) (driver.Buffer,
|
||||
func (b *Backend) NewImmutableBuffer(typ driver.BufferBinding, data []byte) (driver.Buffer, error) {
|
||||
glErr(b.funcs)
|
||||
obj := b.funcs.CreateBuffer()
|
||||
buf := &gpuBuffer{backend: b, obj: obj, typ: typ, size: len(data), hasBuffer: true}
|
||||
buf := &buffer{backend: b, obj: obj, typ: typ, size: len(data), hasBuffer: true}
|
||||
firstBinding := firstBufferType(typ)
|
||||
b.glstate.bindBuffer(b.funcs, firstBinding, buf.obj)
|
||||
b.funcs.BufferData(firstBinding, len(data), gl.STATIC_DRAW)
|
||||
@@ -757,7 +757,7 @@ func (b *Backend) DispatchCompute(x, y, z int) {
|
||||
}
|
||||
|
||||
func (b *Backend) BindImageTexture(unit int, tex driver.Texture, access driver.AccessBits, f driver.TextureFormat) {
|
||||
t := tex.(*gpuTexture)
|
||||
t := tex.(*texture)
|
||||
var acc gl.Enum
|
||||
switch access {
|
||||
case driver.AccessWrite:
|
||||
@@ -777,7 +777,7 @@ func (b *Backend) BindImageTexture(unit int, tex driver.Texture, access driver.A
|
||||
b.funcs.BindImageTexture(unit, t.obj, 0, false, 0, acc, format)
|
||||
}
|
||||
|
||||
func (b *Backend) useProgram(p *gpuProgram) {
|
||||
func (b *Backend) useProgram(p *program) {
|
||||
b.glstate.useProgram(b.funcs, p.obj)
|
||||
b.state.prog = p
|
||||
}
|
||||
@@ -856,7 +856,7 @@ func (b *Backend) NewInputLayout(vs shader.Sources, layout []shader.InputDesc) (
|
||||
return nil, fmt.Errorf("NewInputLayout: data size mismatch for %q: got %d expected %d", inp.Name, got, exp)
|
||||
}
|
||||
}
|
||||
return &gpuInputLayout{
|
||||
return &inputLayout{
|
||||
inputs: vs.Inputs,
|
||||
layout: layout,
|
||||
}, nil
|
||||
@@ -867,11 +867,10 @@ func (b *Backend) NewComputeProgram(src shader.Sources) (driver.Program, error)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%s: %v", src.Name, err)
|
||||
}
|
||||
gpuProg := &gpuProgram{
|
||||
return &program{
|
||||
backend: b,
|
||||
obj: p,
|
||||
}
|
||||
return gpuProg, nil
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (b *Backend) NewProgram(vertShader, fragShader shader.Sources) (driver.Program, error) {
|
||||
@@ -896,11 +895,11 @@ func (b *Backend) NewProgram(vertShader, fragShader shader.Sources) (driver.Prog
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
gpuProg := &gpuProgram{
|
||||
prog := &program{
|
||||
backend: b,
|
||||
obj: p,
|
||||
}
|
||||
b.BindProgram(gpuProg)
|
||||
b.BindProgram(prog)
|
||||
// Bind texture uniforms.
|
||||
for _, tex := range vertShader.Textures {
|
||||
u := b.funcs.GetUniformLocation(p, tex.Name)
|
||||
@@ -932,10 +931,10 @@ func (b *Backend) NewProgram(vertShader, fragShader shader.Sources) (driver.Prog
|
||||
}
|
||||
}
|
||||
} else {
|
||||
gpuProg.vertUniforms.setup(b.funcs, p, vertShader.Uniforms.Size, vertShader.Uniforms.Locations)
|
||||
gpuProg.fragUniforms.setup(b.funcs, p, fragShader.Uniforms.Size, fragShader.Uniforms.Locations)
|
||||
prog.vertUniforms.setup(b.funcs, p, vertShader.Uniforms.Size, vertShader.Uniforms.Locations)
|
||||
prog.fragUniforms.setup(b.funcs, p, fragShader.Uniforms.Size, fragShader.Uniforms.Locations)
|
||||
}
|
||||
return gpuProg, nil
|
||||
return prog, nil
|
||||
}
|
||||
|
||||
func lookupUniform(funcs *gl.Functions, p gl.Program, loc shader.UniformLocation) uniformLocation {
|
||||
@@ -946,23 +945,23 @@ func lookupUniform(funcs *gl.Functions, p gl.Program, loc shader.UniformLocation
|
||||
return uniformLocation{uniform: u, offset: loc.Offset, typ: loc.Type, size: loc.Size}
|
||||
}
|
||||
|
||||
func (p *gpuProgram) SetStorageBuffer(binding int, buffer driver.Buffer) {
|
||||
buf := buffer.(*gpuBuffer)
|
||||
if buf.typ&driver.BufferBindingShaderStorage == 0 {
|
||||
func (p *program) SetStorageBuffer(binding int, buf driver.Buffer) {
|
||||
b := buf.(*buffer)
|
||||
if b.typ&driver.BufferBindingShaderStorage == 0 {
|
||||
panic("not a shader storage buffer")
|
||||
}
|
||||
p.storage[binding] = buf
|
||||
p.storage[binding] = b
|
||||
}
|
||||
|
||||
func (p *gpuProgram) SetVertexUniforms(buffer driver.Buffer) {
|
||||
p.vertUniforms.setBuffer(buffer)
|
||||
func (p *program) SetVertexUniforms(buf driver.Buffer) {
|
||||
p.vertUniforms.setBuffer(buf)
|
||||
}
|
||||
|
||||
func (p *gpuProgram) SetFragmentUniforms(buffer driver.Buffer) {
|
||||
p.fragUniforms.setBuffer(buffer)
|
||||
func (p *program) SetFragmentUniforms(buf driver.Buffer) {
|
||||
p.fragUniforms.setBuffer(buf)
|
||||
}
|
||||
|
||||
func (p *gpuProgram) updateUniforms() {
|
||||
func (p *program) updateUniforms() {
|
||||
f := p.backend.funcs
|
||||
if p.backend.ubo {
|
||||
if b := p.vertUniforms.buf; b != nil {
|
||||
@@ -978,11 +977,11 @@ func (p *gpuProgram) updateUniforms() {
|
||||
}
|
||||
|
||||
func (b *Backend) BindProgram(prog driver.Program) {
|
||||
p := prog.(*gpuProgram)
|
||||
p := prog.(*program)
|
||||
b.useProgram(p)
|
||||
}
|
||||
|
||||
func (p *gpuProgram) Release() {
|
||||
func (p *program) Release() {
|
||||
p.backend.glstate.deleteProgram(p.backend.funcs, p.obj)
|
||||
}
|
||||
|
||||
@@ -994,17 +993,17 @@ func (u *uniformsTracker) setup(funcs *gl.Functions, p gl.Program, uniformSize i
|
||||
u.size = uniformSize
|
||||
}
|
||||
|
||||
func (u *uniformsTracker) setBuffer(buffer driver.Buffer) {
|
||||
buf := buffer.(*gpuBuffer)
|
||||
if buf.typ&driver.BufferBindingUniforms == 0 {
|
||||
func (u *uniformsTracker) setBuffer(buf driver.Buffer) {
|
||||
b := buf.(*buffer)
|
||||
if b.typ&driver.BufferBindingUniforms == 0 {
|
||||
panic("not a uniform buffer")
|
||||
}
|
||||
if buf.size < u.size {
|
||||
panic(fmt.Errorf("uniform buffer too small, got %d need %d", buf.size, u.size))
|
||||
if b.size < u.size {
|
||||
panic(fmt.Errorf("uniform buffer too small, got %d need %d", b.size, u.size))
|
||||
}
|
||||
u.buf = buf
|
||||
u.buf = b
|
||||
// Force update.
|
||||
u.version = buf.version - 1
|
||||
u.version = b.version - 1
|
||||
}
|
||||
|
||||
func (p *uniformsTracker) update(funcs *gl.Functions) {
|
||||
@@ -1039,7 +1038,7 @@ func (p *uniformsTracker) update(funcs *gl.Functions) {
|
||||
}
|
||||
}
|
||||
|
||||
func (b *gpuBuffer) Upload(data []byte) {
|
||||
func (b *buffer) Upload(data []byte) {
|
||||
if b.immutable {
|
||||
panic("immutable buffer")
|
||||
}
|
||||
@@ -1061,7 +1060,7 @@ func (b *gpuBuffer) Upload(data []byte) {
|
||||
}
|
||||
}
|
||||
|
||||
func (b *gpuBuffer) Download(data []byte) error {
|
||||
func (b *buffer) Download(data []byte) error {
|
||||
if len(data) > b.size {
|
||||
panic("buffer size overflow")
|
||||
}
|
||||
@@ -1082,7 +1081,7 @@ func (b *gpuBuffer) Download(data []byte) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (b *gpuBuffer) Release() {
|
||||
func (b *buffer) Release() {
|
||||
if b.hasBuffer {
|
||||
b.backend.glstate.deleteBuffer(b.backend.funcs, b.obj)
|
||||
b.hasBuffer = false
|
||||
@@ -1090,7 +1089,7 @@ func (b *gpuBuffer) Release() {
|
||||
}
|
||||
|
||||
func (b *Backend) BindVertexBuffer(buf driver.Buffer, stride, offset int) {
|
||||
gbuf := buf.(*gpuBuffer)
|
||||
gbuf := buf.(*buffer)
|
||||
if gbuf.typ&driver.BufferBindingVertices == 0 {
|
||||
panic("not a vertex buffer")
|
||||
}
|
||||
@@ -1125,7 +1124,7 @@ func (b *Backend) setupVertexArrays() {
|
||||
}
|
||||
|
||||
func (b *Backend) BindIndexBuffer(buf driver.Buffer) {
|
||||
gbuf := buf.(*gpuBuffer)
|
||||
gbuf := buf.(*buffer)
|
||||
if gbuf.typ&driver.BufferBindingIndices == 0 {
|
||||
panic("not an index buffer")
|
||||
}
|
||||
@@ -1133,8 +1132,8 @@ func (b *Backend) BindIndexBuffer(buf driver.Buffer) {
|
||||
}
|
||||
|
||||
func (b *Backend) BlitFramebuffer(dst, src driver.Framebuffer, srect, drect image.Rectangle) {
|
||||
b.glstate.bindFramebuffer(b.funcs, gl.DRAW_FRAMEBUFFER, dst.(*gpuFramebuffer).obj)
|
||||
b.glstate.bindFramebuffer(b.funcs, gl.READ_FRAMEBUFFER, src.(*gpuFramebuffer).obj)
|
||||
b.glstate.bindFramebuffer(b.funcs, gl.DRAW_FRAMEBUFFER, dst.(*framebuffer).obj)
|
||||
b.glstate.bindFramebuffer(b.funcs, gl.READ_FRAMEBUFFER, src.(*framebuffer).obj)
|
||||
b.funcs.BlitFramebuffer(
|
||||
srect.Min.X, srect.Min.Y, srect.Max.X, srect.Max.Y,
|
||||
drect.Min.X, drect.Min.Y, drect.Max.X, drect.Max.Y,
|
||||
@@ -1142,7 +1141,7 @@ func (b *Backend) BlitFramebuffer(dst, src driver.Framebuffer, srect, drect imag
|
||||
gl.NEAREST)
|
||||
}
|
||||
|
||||
func (f *gpuFramebuffer) ReadPixels(src image.Rectangle, pixels []byte) error {
|
||||
func (f *framebuffer) ReadPixels(src image.Rectangle, pixels []byte) error {
|
||||
glErr(f.backend.funcs)
|
||||
f.backend.BindFramebuffer(f)
|
||||
if len(pixels) < src.Dx()*src.Dy()*4 {
|
||||
@@ -1153,22 +1152,22 @@ func (f *gpuFramebuffer) ReadPixels(src image.Rectangle, pixels []byte) error {
|
||||
}
|
||||
|
||||
func (b *Backend) BindFramebuffer(fbo driver.Framebuffer) {
|
||||
b.glstate.bindFramebuffer(b.funcs, gl.FRAMEBUFFER, fbo.(*gpuFramebuffer).obj)
|
||||
b.glstate.bindFramebuffer(b.funcs, gl.FRAMEBUFFER, fbo.(*framebuffer).obj)
|
||||
}
|
||||
|
||||
func (f *gpuFramebuffer) Invalidate() {
|
||||
func (f *framebuffer) Invalidate() {
|
||||
f.backend.BindFramebuffer(f)
|
||||
f.backend.funcs.InvalidateFramebuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0)
|
||||
}
|
||||
|
||||
func (f *gpuFramebuffer) Release() {
|
||||
func (f *framebuffer) Release() {
|
||||
if f.foreign {
|
||||
panic("framebuffer not created by NewFramebuffer")
|
||||
}
|
||||
f.backend.glstate.deleteFramebuffer(f.backend.funcs, f.obj)
|
||||
}
|
||||
|
||||
func (f *gpuFramebuffer) ImplementsRenderTarget() {}
|
||||
func (f *framebuffer) ImplementsRenderTarget() {}
|
||||
|
||||
func toTexFilter(f driver.TextureFilter) int {
|
||||
switch f {
|
||||
@@ -1182,14 +1181,14 @@ func toTexFilter(f driver.TextureFilter) int {
|
||||
}
|
||||
|
||||
func (b *Backend) BindTexture(unit int, t driver.Texture) {
|
||||
b.glstate.bindTexture(b.funcs, unit, t.(*gpuTexture).obj)
|
||||
b.glstate.bindTexture(b.funcs, unit, t.(*texture).obj)
|
||||
}
|
||||
|
||||
func (t *gpuTexture) Release() {
|
||||
func (t *texture) Release() {
|
||||
t.backend.glstate.deleteTexture(t.backend.funcs, t.obj)
|
||||
}
|
||||
|
||||
func (t *gpuTexture) Upload(offset, size image.Point, pixels []byte, stride int) {
|
||||
func (t *texture) Upload(offset, size image.Point, pixels []byte, stride int) {
|
||||
if min := size.X * size.Y * 4; min > len(pixels) {
|
||||
panic(fmt.Errorf("size %d larger than data %d", min, len(pixels)))
|
||||
}
|
||||
@@ -1198,23 +1197,23 @@ func (t *gpuTexture) Upload(offset, size image.Point, pixels []byte, stride int)
|
||||
t.backend.funcs.TexSubImage2D(gl.TEXTURE_2D, 0, offset.X, offset.Y, size.X, size.Y, t.triple.format, t.triple.typ, pixels)
|
||||
}
|
||||
|
||||
func (t *gpuTimer) Begin() {
|
||||
func (t *timer) Begin() {
|
||||
t.funcs.BeginQuery(gl.TIME_ELAPSED_EXT, t.obj)
|
||||
}
|
||||
|
||||
func (t *gpuTimer) End() {
|
||||
func (t *timer) End() {
|
||||
t.funcs.EndQuery(gl.TIME_ELAPSED_EXT)
|
||||
}
|
||||
|
||||
func (t *gpuTimer) ready() bool {
|
||||
func (t *timer) ready() bool {
|
||||
return t.funcs.GetQueryObjectuiv(t.obj, gl.QUERY_RESULT_AVAILABLE) == gl.TRUE
|
||||
}
|
||||
|
||||
func (t *gpuTimer) Release() {
|
||||
func (t *timer) Release() {
|
||||
t.funcs.DeleteQuery(t.obj)
|
||||
}
|
||||
|
||||
func (t *gpuTimer) Duration() (time.Duration, bool) {
|
||||
func (t *timer) Duration() (time.Duration, bool) {
|
||||
if !t.ready() {
|
||||
return 0, false
|
||||
}
|
||||
@@ -1223,10 +1222,10 @@ func (t *gpuTimer) Duration() (time.Duration, bool) {
|
||||
}
|
||||
|
||||
func (b *Backend) BindInputLayout(l driver.InputLayout) {
|
||||
b.state.layout = l.(*gpuInputLayout)
|
||||
b.state.layout = l.(*inputLayout)
|
||||
}
|
||||
|
||||
func (l *gpuInputLayout) Release() {}
|
||||
func (l *inputLayout) Release() {}
|
||||
|
||||
// floatTripleFor determines the best texture triple for floating point FBOs.
|
||||
func floatTripleFor(f *gl.Functions, ver [2]int, exts []string) (textureTriple, error) {
|
||||
|
||||
Reference in New Issue
Block a user