LoginSignup
399
371

More than 5 years have passed since last update.

Go最後の秘宝「GUI」を探しに行く

Last updated at Posted at 2015-12-23

Golang


使Go

APIgRPCHTTP/2

Web

gitmakeruntower

gopher.jsJavaScript


GoGUIGXUIshinyshiny使

go-qmlmattn-warego-gtkWindowsWALKUI使github.com/andlabs/uiREADME


go-qmlWindows使


gopher.js(GTK)GolangGUI()

3GoGUI

GUI


GUIGUIGUI


Windows

GDI+()

Direct2D()



Mac OS X

Quartz



Java

Java 2D



Google Chrome/Android/Chrome OS

Skia



Qt

QPainter



FireFox, GTK+

cairo



BeOS

BView




OpenGL/DirectX使OpenGLDirectXAPIPostScript調

GUI


OpenGLUI


GUIGUINanoVG使NanoVG


NanoVGHTML5 Canvas C/C++

NanoVG


4000C(TrueType)


$ go get github.com/shibukawa/nanovgo

スクリーンショット 2015-12-04 11.17.55.png
goxjs/gl使Nexus 5ChromeNanoVGOpenGL










()








PDF3使GolangOpenGL(WebGL)float64

@hnakamur@mattn使C


Golang

GUI


NanoVGoGoblendish使NanoGUI6000



スクリーンショット 2015-12-05 12.45.21.png
Mac OS XEmacspure go使




 ()

 ()

 ()

 ()

 ()



 (OS)

 (OS)







()



 ( )







Golang


C++使interfaceNanoGUI.goGoGo

GUINanoGUI501HTML

GUIC/C++

GUIGUIJavaScriptNanoGUI.go使X


MacWindowsmxeMinGW使MacLinuxFreeBSDMacPortsmingw
$ git clone https://github.com/mxe/mxe.git
$ cd mxe
$ make MXE_TARGETS='i686-w64-mingw32.static'

あとはこんな感じでクロスコンパイルできます。glfwなどはgo-gl/glfwにソースが入っているので、glfw3を入れておかなくても大丈夫かと思います。

$ CGO_ENABLED=1 GOOS=windows GOARCH=386 CC="i686-w64-mingw32.static-gcc" go build -ldflags="-H windowsgui" -o sample.exe 

MacLinuxWindowsMac/Linux


GUI使glfwWindowsWM_CHARMacglfwPR#643UTF-16UTF-32

IMEon-the-spot()over-the-spot, off-the-spot, root windowMozillaon-the-spot




IME()

IME ON/OFF

IME ON/OFF




Cglfw調API




glfwIMEPR#658

go-gl/glfwgo github.comshibukawa/glfw-2

goxjs/glfw使go github.comshibukawa/glfw


out.gif
go-gl/glfwgoxjs/glfw使Windows/Macglfw v3.2
$ go get github.com/shibukawa/nanogui.go

glfwIMEX11WaylandLinuxBSD


NanoGUI.goGoGo


WidgetImplement 

New(parent Widget) *  InitWidget 

PreferredSize(self Widget, ctx *nanovgo.Context) (int, int) 

Draw(ctx *nanovgo.Context) 

String() string ()


使x, y(0, 0, w, h)

1Screen/

()(OS)



spinner.gif
Makefilego getGolang
nanogui.SetDebug(true) // ウィジェット境界に赤枠描画
screen.DebugPrint()    // ウィジェットのツリーをコンソールに表示

次にやりたいこと


GUINanoVGo/NanoGUI.goGUINanoGUI.go


NanoGUI.go使使()UI使TTF使調


IPA P - 6.2MB

 - 5.7MB

Nasu - 5.2MB

 - 5.1MB

VLP - 4.2MB

 - 1.7MB

M+ - 1.6MB


NotoSans(TTF)使使M+調IPA使Noto Sans()

OS使OS使UI使使OSnode.js


font-manager(node.js)


GoMac OSOpenType使TrueType使TrueTypeOpenTypeJavaScript


opentype.js


OpenType1NanoGUI.go使使

NotoEmojiTTF


noto-emoji

Twttertwemoji


Harfbuzz

NanoVGo


nanovgnanoguiGUI

2GPUGPUWebGLTRIANGLE_STRIP使2/3UVGPU使

nanovgAPIUV使92使Rect1renderTriangle1

GPU


OpenGLOS XNanoGUI使

API<input type="file">NanoGUIFileDialogButton 


HTML5


OpenGLGUIGUI


使

(Mac/Windows)

glfwRetina

(mac->windows)

Win/Mac/Linuxcgo使30

go get


ShineyGolang

GUI/

cubicdaiyagureguerukiti

(1/6/2016)


VScrollPanel使


nanogui.go





https://github.com/shibukawa/vg4go

https://github.com/shibukawa/gui4go


OpenTypeGUI
399
371
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
399
371