Untitled
unknown
python
3 years ago
1.8 kB
80
Indexable
from simple_websocket_server import WebSocketServer, WebSocket
import bpy,gpu,time
def draw():
global to_draw, begin
if to_draw:
print("drawing")
framebuffer = gpu.state.active_framebuffer_get()
viewport_info = gpu.state.viewport_get()
width = viewport_info[2]
height = viewport_info[3]
framebuffer_image.scale(width, height)
pixelBuffer = framebuffer.read_color(0, 0, width, height, 4, 0, 'FLOAT')
pixelBuffer.dimensions = width * height * 4
framebuffer_image.pixels.foreach_set(pixelBuffer)
framebuffer_image.filepath_raw = "/home/mm/Desktop/Additional/Temp/MyImage.png"
framebuffer_image.save()
to_draw=False
### server ###
class SimpleEcho(WebSocket):
def handle(self):
print("got data=",self.data)
if(self.data=="update"):
## generating image
bpy.data.objects['Cube'].rotation_euler[0] = 1.5
to_draw=True
bpy.ops.wm.redraw_timer(type='DRAW_WIN', iterations=1,time_limit=0)
def connected(self):
print(self.address, 'connected')
def handle_close(self):
print(self.address, 'closed')
if __name__ == "__main__":
global to_draw,b
to_draw=False
if "color_buffer_copy" in bpy.data.images:
framebuffer_image = bpy.data.images["color_buffer_copy"]
else:
framebuffer_image = bpy.data.images.new("color_buffer_copy" , 32, 32, float_buffer=True,alpha=True)
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'PRE_VIEW')
bpy.ops.wm.redraw_timer(type='DRAW_WIN_SWAP', iterations=1)
print("started server!")
server = WebSocketServer('', 8000, SimpleEcho)
server.serve_forever()Editor is loading...