mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-11-10 04:57:26 +01:00
parent
e6a88a7d1f
commit
4a9a7f936d
@ -610,7 +610,14 @@ func (d *Driver) Draw(indexLen int, indexOffset int, mode driver.CompositeMode,
|
||||
compositeMode: mode,
|
||||
}])
|
||||
}
|
||||
rce.SetViewport(mtl.Viewport{0, 0, float64(w), float64(h), -1, 1})
|
||||
rce.SetViewport(mtl.Viewport{
|
||||
OriginX: 0,
|
||||
OriginY: 0,
|
||||
Width: float64(w),
|
||||
Height: float64(h),
|
||||
ZNear: -1,
|
||||
ZFar: 1,
|
||||
})
|
||||
rce.SetVertexBuffer(d.vb, 0, 0)
|
||||
|
||||
viewportSize := [...]float32{float32(w), float32(h)}
|
||||
@ -767,7 +774,7 @@ func (i *Image) Pixels() ([]byte, error) {
|
||||
b := make([]byte, 4*i.width*i.height)
|
||||
i.driver.t.Call(func() error {
|
||||
i.texture.GetBytes(&b[0], uintptr(4*i.width), mtl.Region{
|
||||
Size: mtl.Size{i.width, i.height, 1},
|
||||
Size: mtl.Size{Width: i.width, Height: i.height, Depth: 1},
|
||||
}, 0)
|
||||
return nil
|
||||
})
|
||||
@ -793,8 +800,8 @@ func (i *Image) ReplacePixels(pixels []byte, x, y, width, height int) {
|
||||
|
||||
i.driver.t.Call(func() error {
|
||||
i.texture.ReplaceRegion(mtl.Region{
|
||||
Origin: mtl.Origin{x, y, 0},
|
||||
Size: mtl.Size{width, height, 1},
|
||||
Origin: mtl.Origin{X: x, Y: y, Z: 0},
|
||||
Size: mtl.Size{Width: width, Height: height, Depth: 1},
|
||||
}, 0, unsafe.Pointer(&pixels[0]), 4*width)
|
||||
return nil
|
||||
})
|
||||
|
@ -36,11 +36,11 @@ import "C"
|
||||
//
|
||||
// Reference: https://developer.apple.com/documentation/appkit/nswindow.
|
||||
type Window struct {
|
||||
window unsafe.Pointer
|
||||
window uintptr
|
||||
}
|
||||
|
||||
// NewWindow returns a Window that wraps an existing NSWindow * pointer.
|
||||
func NewWindow(window unsafe.Pointer) Window {
|
||||
func NewWindow(window uintptr) Window {
|
||||
return Window{window}
|
||||
}
|
||||
|
||||
@ -49,7 +49,7 @@ func NewWindow(window unsafe.Pointer) Window {
|
||||
//
|
||||
// Reference: https://developer.apple.com/documentation/appkit/nswindow/1419160-contentview.
|
||||
func (w Window) ContentView() View {
|
||||
return View{C.Window_ContentView(w.window)}
|
||||
return View{C.Window_ContentView(C.uintptr_t(w.window))}
|
||||
}
|
||||
|
||||
// View is the infrastructure for drawing, printing, and handling events in an app.
|
||||
|
@ -14,9 +14,11 @@
|
||||
|
||||
// +build darwin
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
typedef signed char BOOL;
|
||||
|
||||
void *Window_ContentView(void *window);
|
||||
void *Window_ContentView(uintptr_t window);
|
||||
|
||||
void View_SetLayer(void *view, void *layer);
|
||||
void View_SetWantsLayer(void *view, BOOL wantsLayer);
|
||||
|
@ -17,7 +17,7 @@
|
||||
#include "ns.h"
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
void *Window_ContentView(void *window) {
|
||||
void *Window_ContentView(uintptr_t window) {
|
||||
return ((NSWindow *)window).contentView;
|
||||
}
|
||||
|
||||
|
@ -18,8 +18,6 @@
|
||||
package metal
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
|
||||
"github.com/hajimehoshi/ebiten/internal/graphicsdriver/metal/ca"
|
||||
"github.com/hajimehoshi/ebiten/internal/graphicsdriver/metal/mtl"
|
||||
"github.com/hajimehoshi/ebiten/internal/graphicsdriver/metal/ns"
|
||||
@ -76,7 +74,7 @@ func (v *view) reset() error {
|
||||
|
||||
func (v *view) update() {
|
||||
// NSView can be changed anytime (probably). Set this everyframe.
|
||||
cocoaWindow := ns.NewWindow(unsafe.Pointer(v.window))
|
||||
cocoaWindow := ns.NewWindow(v.window)
|
||||
cocoaWindow.ContentView().SetLayer(v.ml)
|
||||
cocoaWindow.ContentView().SetWantsLayer(true)
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ package glfw
|
||||
//
|
||||
// #import <AppKit/AppKit.h>
|
||||
//
|
||||
// static void currentMonitorPos(void* windowPtr, int* x, int* y) {
|
||||
// static void currentMonitorPos(uintptr_t windowPtr, int* x, int* y) {
|
||||
// NSScreen* screen = [NSScreen mainScreen];
|
||||
// if (windowPtr) {
|
||||
// NSWindow* window = (NSWindow*)windowPtr;
|
||||
@ -42,8 +42,6 @@ package glfw
|
||||
import "C"
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
|
||||
"github.com/hajimehoshi/ebiten/internal/glfw"
|
||||
)
|
||||
|
||||
@ -59,8 +57,8 @@ func (u *UserInterface) currentMonitorFromPosition() *glfw.Monitor {
|
||||
x := C.int(0)
|
||||
y := C.int(0)
|
||||
// Note: [NSApp mainWindow] is nil when it doesn't have its border. Use u.window here.
|
||||
win := unsafe.Pointer(u.window.GetCocoaWindow())
|
||||
C.currentMonitorPos(win, &x, &y)
|
||||
win := u.window.GetCocoaWindow()
|
||||
C.currentMonitorPos(C.uintptr_t(win), &x, &y)
|
||||
for _, m := range glfw.GetMonitors() {
|
||||
mx, my := m.GetPos()
|
||||
if int(x) == mx && int(y) == my {
|
||||
|
@ -169,7 +169,7 @@ func getGlyphImages(face font.Face, runes []rune) []*glyphImage {
|
||||
Src: image.White,
|
||||
Face: face,
|
||||
}
|
||||
d.Dot = fixed.Point26_6{fixed.I(x) - b.Min.X, -b.Min.Y}
|
||||
d.Dot = fixed.Point26_6{X: fixed.I(x) - b.Min.X, Y: -b.Min.Y}
|
||||
d.DrawString(string(r))
|
||||
xs[r] = x
|
||||
|
||||
|
@ -44,7 +44,7 @@ type Path struct {
|
||||
|
||||
// MoveTo skips the current position of the path to the given position (x, y) without adding any strokes.
|
||||
func (p *Path) MoveTo(x, y float32) {
|
||||
p.cur = math.Point{x, y}
|
||||
p.cur = math.Point{X: x, Y: y}
|
||||
if len(p.segs) > 0 && len(p.segs[len(p.segs)-1]) == 0 {
|
||||
return
|
||||
}
|
||||
@ -58,8 +58,8 @@ func (p *Path) LineTo(x, y float32) {
|
||||
if len(p.segs) == 0 {
|
||||
p.segs = append(p.segs, []math.Segment{})
|
||||
}
|
||||
p.segs[len(p.segs)-1] = append(p.segs[len(p.segs)-1], math.Segment{p.cur, math.Point{x, y}})
|
||||
p.cur = math.Point{x, y}
|
||||
p.segs[len(p.segs)-1] = append(p.segs[len(p.segs)-1], math.Segment{P0: p.cur, P1: math.Point{X: x, Y: y}})
|
||||
p.cur = math.Point{X: x, Y: y}
|
||||
}
|
||||
|
||||
func (p *Path) strokeVertices(lineWidth float32, clr color.Color) (vertices []ebiten.Vertex, indices []uint16) {
|
||||
|
Loading…
Reference in New Issue
Block a user