Add reusable local HTTP job service for Blender add-ons

- Implement JobClient for handling HTTP requests to the JobServer.
- Create ModalJobOperatorBase for managing Blender job lifecycle.
- Introduce JobContext and JobServer for job management and state handling.
- Add ServiceConnection and ServiceController for managing service processes.
- Implement job submission, cancellation, and resource management endpoints in the server.
- Ensure proper error handling and job state updates throughout the service.
This commit is contained in:
2026-08-16 21:04:10 +08:00
parent 0c8d3a8988
commit b3a07cde32
43 changed files with 2600 additions and 2671 deletions

View File

@@ -6,7 +6,7 @@ import bpy
sys.path.insert(0, str(Path(__file__).parents[1] / "src"))
from snapform.image_depth import (
from snapform.blender.depth_plane import (
DEPTH_PLANE_MATERIAL_NODE_GROUP_NAME,
SURFACE_MATERIAL_NODE_GROUP_NAME,
add_depth_plane_processing,
@@ -17,7 +17,7 @@ from snapform.image_depth import (
modifier_input_identifier,
set_modifier_input,
)
from snapform.image_mesh import load_geometry_node_group
from snapform.blender.surface import load_geometry_node_group
def main():

View File

@@ -7,11 +7,11 @@ import numpy as np
sys.path.insert(0, str(Path(__file__).parents[1] / "src"))
from snapform.image_depth import (
from snapform.blender.depth_plane import (
get_modifier_input,
set_modifier_input,
)
from snapform.image_mesh import create_matching_camera, load_geometry_node_group
from snapform.blender.surface import create_matching_camera, load_geometry_node_group
def set_input(modifier, group, name, value):

View File

@@ -9,7 +9,7 @@ import numpy as np
PROJECT_ROOT = Path(__file__).parents[1]
sys.path.insert(0, str(PROJECT_ROOT / "src"))
from snapform.image_depth import (
from snapform.blender.depth_plane import (
MOGE_DEPTH_PLANE_NODE_GROUP_NAME,
MOGE_MATERIAL_NODE_GROUP_NAME,
build_moge2_depth_plane,

View File

@@ -9,8 +9,8 @@ import numpy as np
PROJECT_ROOT = Path(__file__).parents[1]
sys.path.insert(0, str(PROJECT_ROOT / "src"))
from snapform.image_depth import MOGE_SURFACE_MATERIAL_NODE_GROUP_NAME
from snapform.image_mesh import (
from snapform.blender.depth_plane import MOGE_SURFACE_MATERIAL_NODE_GROUP_NAME
from snapform.blender.surface import (
MOGE_NODE_GROUP_NAME,
build_image_mesh,
prepare_moge_surface_archive,