Skip to content

Commit

Permalink
feat(engine): web-render add UpdateCameraAspectJob
Browse files Browse the repository at this point in the history
(feat(engine): publish action: fix Page: remove height css)
  • Loading branch information
yyc-git committed Mar 13, 2024
1 parent bebb76b commit a29d20a
Show file tree
Hide file tree
Showing 9 changed files with 64 additions and 8 deletions.
2 changes: 1 addition & 1 deletion contributes/meta3d-action-publish/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "meta3d-action-publish",
"version": "1.3.34",
"version": "1.3.35",
"publisher": "meta3d",
"protocol": {
"name": "meta3d-action-publish-protocol"
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions contributes/meta3d-action-publish/publish_source/src/Page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,9 @@ let Page: React.FC = () => {
return (
<Layout id="ui_page" style={
{
"position": "absolute", "top": "200px", "left": "200px", "zIndex": "100", "display": "none", "width": "400px",
"height": "400px"
"position": "absolute", "top": "200px", "left": "200px", "zIndex": "100", "display": "none",
"width": "400px"
// "height": "400px"
}
}>

Expand Down
4 changes: 3 additions & 1 deletion doc/jiehuo.org
Original file line number Diff line number Diff line change
Expand Up @@ -399,7 +399,7 @@ publish local



* TODO make canvas's size to be 100%
* DONE make canvas's size to be 100%

TODO fix:
ui size
Expand All @@ -409,6 +409,8 @@ scene bianxing
TODO update demo


TODO publish and update
web-render c



Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { service as renderService } from "meta3d-editor-gameview-render-protocol
import { nullable } from "meta3d-commonlib-ts/src/nullable";
import { gameObject } from "meta3d-gameobject-protocol";

let _getAllPerspectiveCameraProjections = (meta3dState: meta3dState,
let _getAllPerspectiveCameraProjectionsExceptOneInSceneView = (meta3dState: meta3dState,
scene: engineSceneService,
arcballCameraControllerGameObjectInSceneView: nullable<gameObject>
) => {
Expand All @@ -34,7 +34,7 @@ let _updateAllCameraAspect = (meta3dState: meta3dState,
) => {
let aspect = width / height

return _getAllPerspectiveCameraProjections(meta3dState, engineSceneService, arcballCameraControllerGameObjectInSceneView).reduce((meta3dState, cameraProjection) => {
return _getAllPerspectiveCameraProjectionsExceptOneInSceneView(meta3dState, engineSceneService, arcballCameraControllerGameObjectInSceneView).reduce((meta3dState, cameraProjection) => {
return engineSceneService.perspectiveCameraProjection.setAspect(meta3dState, cameraProjection, aspect)
}, meta3dState)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { execFunc as execInitScript } from "./jobs/init/InitScriptJob";
import { execFunc as execUpdateScript } from "./jobs/update/UpdateScriptJob";
import { execFunc as execConvertSceneGraph } from "./jobs/render/ConvertSceneGraphJob";
import { execFunc as execUpdateArcballCameraController } from "./jobs/render/UpdateArcballCameraControllerJob";
import { execFunc as execUpdateCameraAspectJob } from "./jobs/render/UpdateCameraAspectJob";
import { execFunc as execRender } from "./jobs/render/RenderJob";
import { state, states, pipelineName, allPipelineData, job } from "meta3d-pipeline-webgl1-three-webrender-protocol/src/StateType";
import { config } from "meta3d-pipeline-webgl1-three-webrender-protocol/src/ConfigType";
Expand All @@ -23,6 +24,8 @@ let _getExecFunc = (_pipelineName: string, jobName: string) => {
return execInit;
case job.InitArcballCameraController:
return execInitArcballCameraController
case job.UpdateCameraAspect:
return execUpdateCameraAspectJob
case job.UpdateArcballCameraController:
return execUpdateArcballCameraController
case job.BindEvent:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import { execFuncType } from "meta3d-core-protocol/src/service/ServiceType"
import { state as meta3dState } from "meta3d-type"
import { getState, setState } from "../Utils";
import { states } from "meta3d-pipeline-webgl1-three-webrender-protocol/src/StateType";
import { service as engineSceneService } from "meta3d-engine-scene-protocol/src/service/ServiceType"
import { service as renderService } from "meta3d-engine-web-render-protocol/src/service/ServiceType"
import { bind, getExn, isNullable } from "meta3d-commonlib-ts/src/NullableUtils";

let _getAllPerspectiveCameraProjections = (meta3dState: meta3dState,
scene: engineSceneService,
) => {
return scene.gameObject.getAllGameObjects(meta3dState).filter(gameObject => {
return scene.gameObject.hasPerspectiveCameraProjection(meta3dState, gameObject)
}).map(gameObject => {
return scene.gameObject.getPerspectiveCameraProjection(meta3dState, gameObject)
})
}

let _updateAllCameraAspect = (meta3dState: meta3dState,
engineSceneService: engineSceneService,
width: number, height: number,
) => {
let aspect = width / height

return _getAllPerspectiveCameraProjections(meta3dState, engineSceneService).reduce((meta3dState, cameraProjection) => {
return engineSceneService.perspectiveCameraProjection.setAspect(meta3dState, cameraProjection, aspect)
}, meta3dState)
}

export let execFunc: execFuncType = (meta3dState, { api, getStatesFunc, setStatesFunc }) => {
let states = getStatesFunc<states>(meta3dState)
let {
mostService,
} = getState(states)

return mostService.callFunc(() => {
let engineSceneService = getExn(api.getPackageService<engineSceneService>(meta3dState, "meta3d-engine-scene-protocol"))
let renderService = api.getExtensionService<renderService>(meta3dState, "meta3d-engine-web-render-protocol")

let { width, height } = getExn(renderService.getViewRect(meta3dState))

return _updateAllCameraAspect(meta3dState, engineSceneService, width, height
)
})
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ export enum job {
Init = "init_three_webrender_meta3d",
InitArcballCameraController = "init_arcballcameracontroller_three_webrender_meta3d",
UpdateArcballCameraController = "update_arcballcameracontroller_three_webrender_meta3d",
UpdateCameraAspect = "update_camera_aspect_three_webrender_meta3d",
BindEvent = "bind_event_three_webrender_meta3d",


Expand Down Expand Up @@ -81,6 +82,10 @@ export const allPipelineData: allPipelineDataType = [
name: "first_three_webrender_meta3d",
link: "concat",
elements: [
{
"name": job.UpdateCameraAspect,
"type_": "job"
},
{
"name": job.UpdateArcballCameraController,
"type_": "job"
Expand Down

0 comments on commit a29d20a

Please sign in to comment.