Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.patch text eol=lf
1 change: 1 addition & 0 deletions .github/workflows/native-ts-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ jobs:
with:
node-version: ${{ matrix.node-version }}
- run: npm ci --ignore-scripts
- run: node scripts/spread-pal.cjs
- run: npm run build:debug-infos
- name: Download external
run: |
Expand Down
87 changes: 54 additions & 33 deletions cc.config.json
Original file line number Diff line number Diff line change
Expand Up @@ -323,56 +323,56 @@
"test": "context.buildTimeConstants && context.buildTimeConstants.HTML5",
"isVirtualModule": true,
"overrides": {
"pal/minigame": "pal/minigame/non-minigame.ts",
"pal/audio": "pal/audio/web/player.ts",
"pal/system-info": "pal/system-info/web/system-info.ts",
"pal/screen-adapter": "pal/screen-adapter/web/screen-adapter.ts",
"pal/input": "pal/input/web/index.ts",
"pal/env": "pal/env/web/env.ts",
"pal/pacer": "pal/pacer/pacer-web.ts",
"pal/wasm": "pal/wasm/wasm-web.ts"
"pal/minigame": "pal/minigame/non-minigame.js",
"pal/audio": "pal/audio/web/player.js",
"pal/system-info": "pal/system-info/web/system-info.js",
"pal/screen-adapter": "pal/screen-adapter/web/screen-adapter.js",
"pal/input": "pal/input/web/index.js",
"pal/env": "pal/env/web/env.js",
"pal/pacer": "pal/pacer/pacer-web.js",
"pal/wasm": "pal/wasm/wasm-web.js"
}
},
{
"test": "context.buildTimeConstants && context.buildTimeConstants.NATIVE",
"isVirtualModule": true,
"overrides": {
"pal/minigame": "pal/minigame/non-minigame.ts",
"pal/audio": "pal/audio/native/player.ts",
"pal/system-info": "pal/system-info/native/system-info.ts",
"pal/screen-adapter": "pal/screen-adapter/native/screen-adapter.ts",
"pal/input": "pal/input/native/index.ts",
"pal/env": "pal/env/native/env.ts",
"pal/pacer": "pal/pacer/pacer-native.ts",
"pal/wasm": "pal/wasm/wasm-native.ts"
"pal/minigame": "pal/minigame/non-minigame.js",
"pal/audio": "pal/audio/native/player.js",
"pal/system-info": "pal/system-info/native/system-info.js",
"pal/screen-adapter": "pal/screen-adapter/native/screen-adapter.js",
"pal/input": "pal/input/native/index.js",
"pal/env": "pal/env/native/env.js",
"pal/pacer": "pal/pacer/pacer-native.js",
"pal/wasm": "pal/wasm/wasm-native.js"
}
},
{
"test": "context.buildTimeConstants && context.buildTimeConstants.MINIGAME",
"isVirtualModule": true,
"overrides": {
"pal/minigame": "pal/minigame/{{context.platform.toLowerCase()}}.ts",
"pal/audio": "pal/audio/minigame/player.ts",
"pal/system-info": "pal/system-info/minigame/system-info.ts",
"pal/screen-adapter": "pal/screen-adapter/minigame/screen-adapter.ts",
"pal/input": "pal/input/minigame/index.ts",
"pal/env": "pal/env/minigame/env.ts",
"pal/pacer": "pal/pacer/pacer-minigame.ts",
"pal/wasm": "pal/wasm/wasm-minigame.ts"
"pal/minigame": "pal/minigame/{{context.platform.toLowerCase()}}.js",
"pal/audio": "pal/audio/minigame/player.js",
"pal/system-info": "pal/system-info/minigame/system-info.js",
"pal/screen-adapter": "pal/screen-adapter/minigame/screen-adapter.js",
"pal/input": "pal/input/minigame/index.js",
"pal/env": "pal/env/minigame/env.js",
"pal/pacer": "pal/pacer/pacer-minigame.js",
"pal/wasm": "pal/wasm/wasm-minigame.js"
}
},
{
"test": "context.buildTimeConstants && context.buildTimeConstants.RUNTIME_BASED",
"isVirtualModule": true,
"overrides": {
"pal/minigame": "pal/minigame/runtime.ts",
"pal/audio": "pal/audio/minigame/player.ts",
"pal/system-info": "pal/system-info/minigame/system-info.ts",
"pal/screen-adapter": "pal/screen-adapter/minigame/screen-adapter.ts",
"pal/input": "pal/input/minigame/index.ts",
"pal/env": "pal/env/runtime/env.ts",
"pal/pacer": "pal/pacer/pacer-minigame.ts",
"pal/wasm": "pal/wasm/wasm-minigame.ts"
"pal/minigame": "pal/minigame/runtime.js",
"pal/audio": "pal/audio/minigame/player.js",
"pal/system-info": "pal/system-info/minigame/system-info.js",
"pal/screen-adapter": "pal/screen-adapter/minigame/screen-adapter.js",
"pal/input": "pal/input/minigame/index.js",
"pal/env": "pal/env/runtime/env.js",
"pal/pacer": "pal/pacer/pacer-minigame.js",
"pal/wasm": "pal/wasm/wasm-minigame.js"
}
},
{
Expand Down Expand Up @@ -571,6 +571,13 @@
"internal": false
},

"NODEJS": {
"comment": "Running in the Node.js environment.",
"type": "boolean",
"value": false,
"ccGlobal": true,
"internal": false
},
"EDITOR": {
"comment": "Running in the editor.",
"type": "boolean",
Expand Down Expand Up @@ -642,10 +649,24 @@
"ccGlobal": true,
"internal": false
},
"SUD": {
"comment": "Running in the sud's quick game.",
"type": "boolean",
"value": false,
"ccGlobal": true,
"internal": false
},
"SUDV2": {
"comment": "Running in the sud v2's quick game.",
"type": "boolean",
"value": false,
"ccGlobal": true,
"internal": false
},
"RUNTIME_BASED": {
"comment": "Running in runtime based environment.",
"type": "boolean",
"value": "$OPPO || $VIVO || $HUAWEI || $COCOSPLAY || $QTT || $LINKSURE || $MIGU",
"value": "$OPPO || $VIVO || $HUAWEI || $COCOSPLAY || $QTT || $LINKSURE || $MIGU || $SUD || $SUDV2",
"ccGlobal": true,
"internal": false
},
Expand Down
13 changes: 11 additions & 2 deletions cocos/render-scene/core/render-window.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,14 @@
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
import { DEBUG } from 'internal:constants';
import { screenAdapter } from 'pal/screen-adapter';
import { Orientation } from '../../../pal/screen-adapter/enum-type';
import {
TextureType, TextureUsageBit, Format, RenderPass, Texture, Framebuffer,
RenderPassInfo, Device, TextureInfo, FramebufferInfo, Swapchain, SurfaceTransform, TextureFlagBit, TextureFlags,
} from '../../gfx';
import { warn } from '../../core/platform/debug';
import { Root } from '../../root';
import { Camera } from '../scene';

Expand All @@ -41,7 +43,10 @@ export interface IRenderWindowInfo {
externalFlag?: TextureFlags; // external texture type normal or oes
}

const orientationMap: Record<Orientation, SurfaceTransform> = {
// NOTE: `Orientation` is a flag enum whose composite members (LANDSCAPE, AUTO) are never
// actual runtime orientations, so this map intentionally only covers the physical ones.
// It is therefore typed as Partial rather than a total Record<Orientation, ...>.
const orientationMap: Partial<Record<Orientation, SurfaceTransform>> = {
[Orientation.PORTRAIT]: SurfaceTransform.IDENTITY,
[Orientation.LANDSCAPE_RIGHT]: SurfaceTransform.ROTATE_90,
[Orientation.PORTRAIT_UPSIDE_DOWN]: SurfaceTransform.ROTATE_180,
Expand Down Expand Up @@ -253,7 +258,11 @@ export class RenderWindow {
*/
public resize (width: number, height: number): void {
if (this._swapchain) {
this._swapchain.resize(width, height, orientationMap[screenAdapter.orientation]);
const surfaceTransform = orientationMap[screenAdapter.orientation];
if (DEBUG && surfaceTransform === undefined) {
warn(`Unexpected screen orientation: ${screenAdapter.orientation}`);
}
this._swapchain.resize(width, height, surfaceTransform || SurfaceTransform.IDENTITY);
this._width = this._swapchain.width;
this._height = this._swapchain.height;
} else {
Expand Down
Loading
Loading