Added nuklear example. Demo isnt quite right. its a huge example.
This commit is contained in:
parent
f834099a9a
commit
8dc5a00d59
BIN
bin/linux/libjpeg.so
Normal file
BIN
bin/linux/libjpeg.so
Normal file
Binary file not shown.
BIN
bin/linux/libuv.so
Normal file
BIN
bin/linux/libuv.so
Normal file
Binary file not shown.
BIN
bin/linux/luajit
Normal file
BIN
bin/linux/luajit
Normal file
Binary file not shown.
BIN
bin/macos/png.dylib
Normal file
BIN
bin/macos/png.dylib
Normal file
Binary file not shown.
Binary file not shown.
BIN
bin/win64/libuv.dll
Normal file
BIN
bin/win64/libuv.dll
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bin/win64/sokol_nuklear_dll.dll
Normal file
BIN
bin/win64/sokol_nuklear_dll.dll
Normal file
Binary file not shown.
Binary file not shown.
86
examples/libuv/test.lua
Normal file
86
examples/libuv/test.lua
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
|
||||||
|
package.path = package.path..";lua/?.lua;lua/?/init.lua"
|
||||||
|
package.path = package.path..";ffi/?.lua;ffi/?/init.lua"
|
||||||
|
package.path = package.path..";deps/?.lua;deps/?/init.lua"
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
local ffi = require 'ffi'
|
||||||
|
local ffiext = require 'ffi-extensions'
|
||||||
|
|
||||||
|
local p = require 'pretty-print-ffi'.prettyPrint
|
||||||
|
local loop = require 'uv-ffi'
|
||||||
|
|
||||||
|
local function makeHeader(datalen)
|
||||||
|
|
||||||
|
local dt = os.date("%a, %d %b %Y %X GMT")
|
||||||
|
|
||||||
|
local data = "HTTP/1.1 200 OK\r\n"..
|
||||||
|
"Date: "..dt.."\r\n"..
|
||||||
|
"Server: Apache/2.4.29 (Ubuntu)\r\n"..
|
||||||
|
"Cache-Control: max-age=604800\r\n"..
|
||||||
|
"Pragma: no-cache\r\n"..
|
||||||
|
"Content-Encoding: none\r\n"..
|
||||||
|
"Content-Length: "..datalen.."\r\n"..
|
||||||
|
"Connection: Close\r\n"..
|
||||||
|
"Content-Type: text/html;charset=UTF-8\r\n\r\n"
|
||||||
|
return data
|
||||||
|
end
|
||||||
|
|
||||||
|
-- require 'safe-coro'(function ()
|
||||||
|
-- local timer = loop:newTimer()
|
||||||
|
-- p("About to sleep", timer)
|
||||||
|
-- timer:sleep(1000)
|
||||||
|
-- p("Done sleeping!", timer)
|
||||||
|
-- timer:close()
|
||||||
|
-- end)
|
||||||
|
|
||||||
|
local function alloc_buffer(handle, suggested_size)
|
||||||
|
return loop.uv.uv_buf_init( ffi.new("char[?]", suggested_size), suggested_size)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function echo_write(req, status)
|
||||||
|
if status == -1 then
|
||||||
|
p("Write error!")
|
||||||
|
end
|
||||||
|
p("Request:", req)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function echo_read(client, nread, buf)
|
||||||
|
if nread == -1 then
|
||||||
|
p("Read error!");
|
||||||
|
loop.uv.uv_close(ffi.cast("uv_handle_t*",client), nil)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local write_req = ffi.new("uv_write_t[1]")
|
||||||
|
local data = ffi.new ("uv_buf_t[1]")
|
||||||
|
|
||||||
|
local resp = "<h1>HELLOOOOO</h1>\r\n"
|
||||||
|
local hdr = makeHeader(#resp)
|
||||||
|
hdr = hdr..resp
|
||||||
|
|
||||||
|
data[0].base = ffi.cast("char *", hdr)
|
||||||
|
data[0].len = #hdr
|
||||||
|
|
||||||
|
loop.uv.uv_write(write_req, client, data, 1, echo_write)
|
||||||
|
end
|
||||||
|
|
||||||
|
function on_new_connect( server, status )
|
||||||
|
|
||||||
|
client = ffi.new("uv_tcp_t[1]")
|
||||||
|
loop.uv.uv_tcp_init(loop, client)
|
||||||
|
-- Start accepting the request
|
||||||
|
if loop.uv.uv_accept(server, ffi.cast("uv_stream_t*", client)) == 0 then
|
||||||
|
-- Valid accept then start reading stream
|
||||||
|
loop.uv.uv_read_start(ffi.cast("uv_stream_t*", client), alloc_buffer, echo_read)
|
||||||
|
else
|
||||||
|
-- Bad request or connection closed
|
||||||
|
loop.uv.uv_close(ffi.cast("uv_handle_t*",client), nil)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local server = loop:newTcp()
|
||||||
|
local res = loop:bind(server, "0.0.0.0", 7000)
|
||||||
|
runcb = server:listen( 128, on_new_connect )
|
||||||
|
if runcb == nil then p("Couldnt create server."); return end
|
||||||
|
loop:run('default')
|
||||||
55
examples/libuv/threads.lua
Normal file
55
examples/libuv/threads.lua
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
|
||||||
|
package.path = package.path..";lua/?.lua;lua/?/init.lua"
|
||||||
|
package.path = package.path..";ffi/?.lua;ffi/?/init.lua"
|
||||||
|
package.path = package.path..";deps/?.lua;deps/?/init.lua"
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
local ffi = require 'ffi'
|
||||||
|
local ffiext = require 'ffi-extensions'
|
||||||
|
local kern = ffiext.kern
|
||||||
|
|
||||||
|
local p = require 'pretty-print-ffi'.prettyPrint
|
||||||
|
local loop = require 'uv-ffi'
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function hare(arg)
|
||||||
|
local tracklen = arg[0]
|
||||||
|
while (tracklen) do
|
||||||
|
tracklen = tracklen - 1
|
||||||
|
kern.Sleep(100)
|
||||||
|
p("Hare ran another step.")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
function tortoise(arg)
|
||||||
|
local tracklen = arg[0]
|
||||||
|
while (tracklen) do
|
||||||
|
tracklen = tracklen - 1
|
||||||
|
kern.Sleep(500)
|
||||||
|
p("Tortise ran another step.")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
local tracklen1 = ffi.new("int[1]", 10)
|
||||||
|
local tracklen2 = ffi.new("int[1]", 10)
|
||||||
|
|
||||||
|
local hare_id = ffi.new("uv_thread_t[1]")
|
||||||
|
local tortoise_id = ffi.new("uv_thread_t[1]")
|
||||||
|
|
||||||
|
local id1 = loop.uv.uv_thread_create(hare_id, hare, tracklen1)
|
||||||
|
local id2 = loop.uv.uv_thread_create(tortoise_id, tortoise, tracklen2)
|
||||||
|
p("Res:", id1)
|
||||||
|
p("Res:", id2)
|
||||||
|
|
||||||
|
while tracklen2[0] > 0 do
|
||||||
|
kern.Sleep(50)
|
||||||
|
end
|
||||||
|
|
||||||
|
loop.uv.uv_thread_join(hare_id)
|
||||||
|
loop.uv.uv_thread_join(tortoise_id)
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
Binary file not shown.
@ -4,7 +4,7 @@ package.path = package.path..";../?.lua"
|
|||||||
|
|
||||||
--_G.SOKOL_DLL = "sokol_debug_dll"
|
--_G.SOKOL_DLL = "sokol_debug_dll"
|
||||||
local sapp = require("sokol_app")
|
local sapp = require("sokol_app")
|
||||||
local sg = require("sokol_imgui") -- Includes gfx!!
|
sg = require("sokol_imgui") -- Includes gfx!!
|
||||||
local im = sg -- Will NOT be using imgui in applications. Sample only. Dont recommend.
|
local im = sg -- Will NOT be using imgui in applications. Sample only. Dont recommend.
|
||||||
local slib = require("sokol_libs") -- Warn - always after gfx!!
|
local slib = require("sokol_libs") -- Warn - always after gfx!!
|
||||||
|
|
||||||
|
|||||||
BIN
examples/samples/font/ProggyClean.ttf
Normal file
BIN
examples/samples/font/ProggyClean.ttf
Normal file
Binary file not shown.
1475
examples/samples/nuklear_sapp.lua
Normal file
1475
examples/samples/nuklear_sapp.lua
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
|||||||
local sg = _G.sg
|
local sg = _G.sg or require("sokol_gfx")
|
||||||
|
|
||||||
local hmm_utils = {}
|
local hmm_utils = {}
|
||||||
|
|
||||||
|
|||||||
7694
ffi/sokol/sokol_nuklear.lua
Normal file
7694
ffi/sokol/sokol_nuklear.lua
Normal file
File diff suppressed because it is too large
Load Diff
1072
ffi/uv-ffi.lua
Normal file
1072
ffi/uv-ffi.lua
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user