Untitled
unknown
python
2 years ago
1.8 kB
36
Indexable
Never
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()