This commit is contained in:
Hajime Hoshi 2013-06-19 23:51:41 +09:00
parent e91ab21d8d
commit 6ed9102f01
10 changed files with 90 additions and 91 deletions

View File

@ -1,9 +1,9 @@
package ebiten
import (
"time"
"github.com/hajimehoshi/go-ebiten/graphics"
"github.com/hajimehoshi/go-ebiten/graphics/opengl"
"time"
)
type Game interface {
@ -26,7 +26,7 @@ func OpenGLRun(game Game, ui UI) {
func(g graphics.GraphicsContext, offscreen graphics.TextureID) {
ticket := <-ch
game.Draw(g, offscreen)
ch<- ticket
ch <- ticket
})
go func() {
@ -36,11 +36,11 @@ func OpenGLRun(game Game, ui UI) {
<-tick
ticket := <-ch
game.Update()
ch<- ticket
ch <- ticket
}
}()
game.Init(device.TextureFactory())
ch<- true
ch <- true
ui.Run(device)
}

View File

@ -15,17 +15,17 @@ package main
//
import "C"
import (
"github.com/hajimehoshi/go-ebiten"
"github.com/hajimehoshi/go-ebiten/graphics"
"image"
"image/color"
_ "image/png"
"os"
"runtime"
"unsafe"
"github.com/hajimehoshi/go-ebiten"
"github.com/hajimehoshi/go-ebiten/graphics"
)
type GlutUI struct{
type GlutUI struct {
screenWidth int
screenHeight int
screenScale int
@ -62,10 +62,10 @@ func (ui *GlutUI) Init() {
ui.screenScale = 2
C.glutInit(&cargc, &cargs[0])
C.glutInitDisplayMode(C.GLUT_RGBA);
C.glutInitDisplayMode(C.GLUT_RGBA)
C.glutInitWindowSize(
C.int(ui.screenWidth * ui.screenScale),
C.int(ui.screenHeight * ui.screenScale))
C.int(ui.screenWidth*ui.screenScale),
C.int(ui.screenHeight*ui.screenScale))
title := C.CString("Ebiten Demo")
defer C.free(unsafe.Pointer(title))

View File

@ -1,8 +1,8 @@
package graphics_test
import (
"testing"
. "."
"testing"
)
func setElements(matrix *AffineMatrix, elements [][]float64) {

View File

@ -1,8 +1,8 @@
package graphics_test
import (
"testing"
. "."
"testing"
)
func TestGeometryMatrixElements(t *testing.T) {

View File

@ -7,10 +7,10 @@ package opengl
import "C"
import (
"fmt"
"github.com/hajimehoshi/go-ebiten/graphics"
"image"
"image/color"
"unsafe"
"github.com/hajimehoshi/go-ebiten/graphics"
)
type GraphicsContext struct {
@ -53,10 +53,10 @@ func (context *GraphicsContext) Fill(clr color.Color) {
r, g, b, a := clr.RGBA()
max := 65535.0
C.glClearColor(
C.GLclampf(float64(r) / max),
C.GLclampf(float64(g) / max),
C.GLclampf(float64(b) / max),
C.GLclampf(float64(a) / max))
C.GLclampf(float64(r)/max),
C.GLclampf(float64(g)/max),
C.GLclampf(float64(b)/max),
C.GLclampf(float64(a)/max))
C.glClear(C.GL_COLOR_BUFFER_BIT)
}
@ -88,9 +88,9 @@ func (context *GraphicsContext) DrawTexture(
}
tu1 := float32(srcX) / float32(texture.textureWidth)
tu2 := float32(srcX + srcWidth) / float32(texture.textureWidth)
tu2 := float32(srcX+srcWidth) / float32(texture.textureWidth)
tv1 := float32(srcY) / float32(texture.textureHeight)
tv2 := float32(srcY + srcHeight) / float32(texture.textureHeight)
tv2 := float32(srcY+srcHeight) / float32(texture.textureHeight)
texCoord := [...]float32{
tu1, tv1,
tu2, tv1,
@ -138,8 +138,7 @@ func (context *GraphicsContext) setOffscreenFramebuffer(framebuffer C.GLuint,
C.glFlush()
C.glBindFramebuffer(C.GL_FRAMEBUFFER, framebuffer)
if err := C.glCheckFramebufferStatus(C.GL_FRAMEBUFFER);
err != C.GL_FRAMEBUFFER_COMPLETE {
if err := C.glCheckFramebufferStatus(C.GL_FRAMEBUFFER); err != C.GL_FRAMEBUFFER_COMPLETE {
panic(fmt.Sprintf("glBindFramebuffer failed: %d", err))
}
C.glEnable(C.GL_BLEND)
@ -241,7 +240,7 @@ func (context *GraphicsContext) setShaderProgram(
1, (*C.GLfloat)(&glColorMatrixTranslation[0]))
}
func (context *GraphicsContext) getFramebuffer(textureID C.GLuint) C.GLuint{
func (context *GraphicsContext) getFramebuffer(textureID C.GLuint) C.GLuint {
framebuffer, ok := context.framebuffers[textureID]
if ok {
return framebuffer

View File

@ -1,8 +1,8 @@
package opengl_test
import (
"testing"
. "."
"testing"
)
func TestClp2(t *testing.T) {