mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-24 02:38:53 +01:00
graphicsdriver/opengl: Refactoring
This commit is contained in:
parent
ddc8115b51
commit
859d247093
@ -83,7 +83,6 @@ const (
|
||||
fragmentShader = shaderType(gl.FRAGMENT_SHADER)
|
||||
arrayBuffer = bufferType(gl.ARRAY_BUFFER)
|
||||
elementArrayBuffer = bufferType(gl.ELEMENT_ARRAY_BUFFER)
|
||||
dynamicDraw = bufferUsage(gl.DYNAMIC_DRAW)
|
||||
short = dataType(gl.SHORT)
|
||||
float = dataType(gl.FLOAT)
|
||||
|
||||
@ -390,7 +389,7 @@ func (c *context) newArrayBuffer(size int) buffer {
|
||||
var b uint32
|
||||
gl.GenBuffers(1, &b)
|
||||
gl.BindBuffer(uint32(arrayBuffer), b)
|
||||
gl.BufferData(uint32(arrayBuffer), size, nil, uint32(dynamicDraw))
|
||||
gl.BufferData(uint32(arrayBuffer), size, nil, gl.DYNAMIC_DRAW)
|
||||
return buffer(b)
|
||||
}
|
||||
|
||||
@ -398,7 +397,7 @@ func (c *context) newElementArrayBuffer(size int) buffer {
|
||||
var b uint32
|
||||
gl.GenBuffers(1, &b)
|
||||
gl.BindBuffer(uint32(elementArrayBuffer), b)
|
||||
gl.BufferData(uint32(elementArrayBuffer), size, nil, uint32(dynamicDraw))
|
||||
gl.BufferData(uint32(elementArrayBuffer), size, nil, gl.DYNAMIC_DRAW)
|
||||
return buffer(b)
|
||||
}
|
||||
|
||||
|
@ -78,9 +78,6 @@ const (
|
||||
fragmentShader = shaderType(gles.FRAGMENT_SHADER)
|
||||
arrayBuffer = bufferType(gles.ARRAY_BUFFER)
|
||||
elementArrayBuffer = bufferType(gles.ELEMENT_ARRAY_BUFFER)
|
||||
dynamicDraw = bufferUsage(gles.DYNAMIC_DRAW)
|
||||
streamDraw = bufferUsage(gles.STREAM_DRAW)
|
||||
pixelUnpackBuffer = bufferType(gles.PIXEL_UNPACK_BUFFER)
|
||||
short = dataType(gles.SHORT)
|
||||
float = dataType(gles.FLOAT)
|
||||
|
||||
@ -431,7 +428,7 @@ func (c *context) newArrayBuffer(size int) buffer {
|
||||
gl := c.gl
|
||||
b := gl.Call("createBuffer")
|
||||
gl.Call("bindBuffer", int(arrayBuffer), js.Value(b))
|
||||
gl.Call("bufferData", int(arrayBuffer), size, int(dynamicDraw))
|
||||
gl.Call("bufferData", int(arrayBuffer), size, gles.DYNAMIC_DRAW)
|
||||
return buffer(b)
|
||||
}
|
||||
|
||||
@ -439,7 +436,7 @@ func (c *context) newElementArrayBuffer(size int) buffer {
|
||||
gl := c.gl
|
||||
b := gl.Call("createBuffer")
|
||||
gl.Call("bindBuffer", int(elementArrayBuffer), js.Value(b))
|
||||
gl.Call("bufferData", int(elementArrayBuffer), size, int(dynamicDraw))
|
||||
gl.Call("bufferData", int(elementArrayBuffer), size, gles.DYNAMIC_DRAW)
|
||||
return buffer(b)
|
||||
}
|
||||
|
||||
@ -513,16 +510,16 @@ func (c *context) texSubImage2D(t textureNative, width, height int, args []*driv
|
||||
func (c *context) newPixelBufferObject(width, height int) buffer {
|
||||
gl := c.gl
|
||||
b := gl.Call("createBuffer")
|
||||
gl.Call("bindBuffer", int(pixelUnpackBuffer), js.Value(b))
|
||||
gl.Call("bufferData", int(pixelUnpackBuffer), 4*width*height, int(streamDraw))
|
||||
gl.Call("bindBuffer", int(pixelUnpackBuffer), nil)
|
||||
gl.Call("bindBuffer", gles.PIXEL_UNPACK_BUFFER, js.Value(b))
|
||||
gl.Call("bufferData", gles.PIXEL_UNPACK_BUFFER, 4*width*height, gles.STREAM_DRAW)
|
||||
gl.Call("bindBuffer", gles.PIXEL_UNPACK_BUFFER, nil)
|
||||
return buffer(b)
|
||||
}
|
||||
|
||||
func (c *context) replacePixelsWithPBO(buffer buffer, t textureNative, width, height int, args []*driver.ReplacePixelsArgs) {
|
||||
c.bindTexture(t)
|
||||
gl := c.gl
|
||||
gl.Call("bindBuffer", int(pixelUnpackBuffer), js.Value(buffer))
|
||||
gl.Call("bindBuffer", gles.PIXEL_UNPACK_BUFFER, js.Value(buffer))
|
||||
|
||||
stride := 4 * width
|
||||
for _, a := range args {
|
||||
@ -530,7 +527,7 @@ func (c *context) replacePixelsWithPBO(buffer buffer, t textureNative, width, he
|
||||
jsutil.CopySliceToJS(arr, a.Pixels)
|
||||
offset := 4 * (a.Y*width + a.X)
|
||||
for j := 0; j < a.Height; j++ {
|
||||
gl.Call("bufferSubData", int(pixelUnpackBuffer), offset+stride*j, arr, 4*a.Width*j, 4*a.Width)
|
||||
gl.Call("bufferSubData", gles.PIXEL_UNPACK_BUFFER, offset+stride*j, arr, 4*a.Width*j, 4*a.Width)
|
||||
}
|
||||
}
|
||||
|
||||
@ -538,14 +535,14 @@ func (c *context) replacePixelsWithPBO(buffer buffer, t textureNative, width, he
|
||||
// GLsizei width, GLsizei height,
|
||||
// GLenum format, GLenum type, GLintptr offset);
|
||||
gl.Call("texSubImage2D", gles.TEXTURE_2D, 0, 0, 0, width, height, gles.RGBA, gles.UNSIGNED_BYTE, 0)
|
||||
gl.Call("bindBuffer", int(pixelUnpackBuffer), nil)
|
||||
gl.Call("bindBuffer", gles.PIXEL_UNPACK_BUFFER, nil)
|
||||
}
|
||||
|
||||
func (c *context) getBufferSubData(buffer buffer, width, height int) []byte {
|
||||
gl := c.gl
|
||||
gl.Call("bindBuffer", int(pixelUnpackBuffer), buffer)
|
||||
gl.Call("bindBuffer", gles.PIXEL_UNPACK_BUFFER, buffer)
|
||||
arr := jsutil.TemporaryUint8Array(4 * width * height)
|
||||
gl.Call("getBufferSubData", int(pixelUnpackBuffer), 0, arr)
|
||||
gl.Call("bindBuffer", int(pixelUnpackBuffer), 0)
|
||||
gl.Call("getBufferSubData", gles.PIXEL_UNPACK_BUFFER, 0, arr)
|
||||
gl.Call("bindBuffer", gles.PIXEL_UNPACK_BUFFER, 0)
|
||||
return jsutil.Uint8ArrayToSlice(arr)
|
||||
}
|
||||
|
@ -81,7 +81,6 @@ const (
|
||||
fragmentShader = shaderType(gles.FRAGMENT_SHADER)
|
||||
arrayBuffer = bufferType(gles.ARRAY_BUFFER)
|
||||
elementArrayBuffer = bufferType(gles.ELEMENT_ARRAY_BUFFER)
|
||||
dynamicDraw = bufferUsage(gles.DYNAMIC_DRAW)
|
||||
short = dataType(gles.SHORT)
|
||||
float = dataType(gles.FLOAT)
|
||||
|
||||
@ -358,14 +357,14 @@ func (c *context) disableVertexAttribArray(p program, index int) {
|
||||
func (c *context) newArrayBuffer(size int) buffer {
|
||||
b := c.ctx.GenBuffers(1)[0]
|
||||
c.ctx.BindBuffer(uint32(arrayBuffer), b)
|
||||
c.ctx.BufferData(uint32(arrayBuffer), size, nil, uint32(dynamicDraw))
|
||||
c.ctx.BufferData(uint32(arrayBuffer), size, nil, gles.DYNAMIC_DRAW)
|
||||
return buffer(b)
|
||||
}
|
||||
|
||||
func (c *context) newElementArrayBuffer(size int) buffer {
|
||||
b := c.ctx.GenBuffers(1)[0]
|
||||
c.ctx.BindBuffer(uint32(elementArrayBuffer), b)
|
||||
c.ctx.BufferData(uint32(elementArrayBuffer), size, nil, uint32(dynamicDraw))
|
||||
c.ctx.BufferData(uint32(elementArrayBuffer), size, nil, gles.DYNAMIC_DRAW)
|
||||
return buffer(b)
|
||||
}
|
||||
|
||||
|
@ -19,10 +19,6 @@ const (
|
||||
FRAGMENT_SHADER = 0x8B30
|
||||
ARRAY_BUFFER = 0x8892
|
||||
ELEMENT_ARRAY_BUFFER = 0x8893
|
||||
DYNAMIC_DRAW = 0x88E8
|
||||
STREAM_DRAW = 0x88E0
|
||||
PIXEL_PACK_BUFFER = 0x88EB
|
||||
PIXEL_UNPACK_BUFFER = 0x88EC
|
||||
SHORT = 0x1402
|
||||
FLOAT = 0x1406
|
||||
|
||||
@ -34,13 +30,12 @@ const (
|
||||
ONE_MINUS_DST_ALPHA = 0x0305
|
||||
DST_COLOR = 0x0306
|
||||
|
||||
FALSE = 0
|
||||
TRUE = 1
|
||||
|
||||
BLEND = 0x0BE2
|
||||
CLAMP_TO_EDGE = 0x812F
|
||||
COLOR_ATTACHMENT0 = 0x8CE0
|
||||
COMPILE_STATUS = 0x8B81
|
||||
DYNAMIC_DRAW = 0x88E8
|
||||
FALSE = 0
|
||||
FRAMEBUFFER = 0x8D40
|
||||
FRAMEBUFFER_BINDING = 0x8CA6
|
||||
FRAMEBUFFER_COMPLETE = 0x8CD5
|
||||
@ -49,8 +44,11 @@ const (
|
||||
MAX_TEXTURE_SIZE = 0x0D33
|
||||
NEAREST = 0x2600
|
||||
NO_ERROR = 0
|
||||
PIXEL_PACK_BUFFER = 0x88EB
|
||||
PIXEL_UNPACK_BUFFER = 0x88EC
|
||||
READ_WRITE = 0x88BA
|
||||
RGBA = 0x1908
|
||||
STREAM_DRAW = 0x88E0
|
||||
TEXTURE0 = 0x84C0
|
||||
TEXTURE_2D = 0x0DE1
|
||||
TEXTURE_MAG_FILTER = 0x2800
|
||||
@ -58,6 +56,7 @@ const (
|
||||
TEXTURE_WRAP_S = 0x2802
|
||||
TEXTURE_WRAP_T = 0x2803
|
||||
TRIANGLES = 0x0004
|
||||
TRUE = 1
|
||||
SCISSOR_TEST = 0x0C11
|
||||
UNPACK_ALIGNMENT = 0x0CF5
|
||||
UNSIGNED_BYTE = 0x1401
|
||||
|
@ -20,10 +20,6 @@ const (
|
||||
FRAGMENT_SHADER = 0x8B30
|
||||
ARRAY_BUFFER = 0x8892
|
||||
ELEMENT_ARRAY_BUFFER = 0x8893
|
||||
DYNAMIC_DRAW = 0x88E8
|
||||
STREAM_DRAW = 0x88E0
|
||||
PIXEL_PACK_BUFFER = 0x88EB
|
||||
PIXEL_UNPACK_BUFFER = 0x88EC
|
||||
SHORT = 0x1402
|
||||
FLOAT = 0x1406
|
||||
|
||||
@ -35,13 +31,12 @@ const (
|
||||
ONE_MINUS_DST_ALPHA = 0x0305
|
||||
DST_COLOR = 0x0306
|
||||
|
||||
FALSE = 0
|
||||
TRUE = 1
|
||||
|
||||
BLEND = 0x0BE2
|
||||
CLAMP_TO_EDGE = 0x812F
|
||||
COLOR_ATTACHMENT0 = 0x8CE0
|
||||
COMPILE_STATUS = 0x8B81
|
||||
DYNAMIC_DRAW = 0x88E8
|
||||
FALSE = 0
|
||||
FRAMEBUFFER = 0x8D40
|
||||
FRAMEBUFFER_BINDING = 0x8CA6
|
||||
FRAMEBUFFER_COMPLETE = 0x8CD5
|
||||
@ -51,9 +46,12 @@ const (
|
||||
MAX_TEXTURE_SIZE = 0x0D33
|
||||
NEAREST = 0x2600
|
||||
NO_ERROR = 0
|
||||
PIXEL_PACK_BUFFER = 0x88EB
|
||||
PIXEL_UNPACK_BUFFER = 0x88EC
|
||||
READ_WRITE = 0x88BA
|
||||
RGBA = 0x1908
|
||||
SCISSOR_TEST = 0x0C11
|
||||
STREAM_DRAW = 0x88E0
|
||||
TEXTURE0 = 0x84C0
|
||||
TEXTURE_2D = 0x0DE1
|
||||
TEXTURE_MAG_FILTER = 0x2800
|
||||
@ -61,6 +59,7 @@ const (
|
||||
TEXTURE_WRAP_S = 0x2802
|
||||
TEXTURE_WRAP_T = 0x2803
|
||||
TRIANGLES = 0x0004
|
||||
TRUE = 1
|
||||
UNPACK_ALIGNMENT = 0x0CF5
|
||||
UNSIGNED_BYTE = 0x1401
|
||||
UNSIGNED_SHORT = 0x1403
|
||||
|
@ -19,10 +19,9 @@ import (
|
||||
)
|
||||
|
||||
type (
|
||||
shaderType int
|
||||
bufferType int
|
||||
bufferUsage int
|
||||
operation int
|
||||
shaderType int
|
||||
bufferType int
|
||||
operation int
|
||||
)
|
||||
|
||||
type dataType int
|
||||
|
Loading…
Reference in New Issue
Block a user