ff4ff35918
Red Bear OS is a full fork. All sources must be available from git clone with zero network access. Removed gitignore rules that excluded fetched source trees under recipes/*/source/, local/recipes/kde/*/source/, local/recipes/qt/*/source/, and vendor source trees. Build artifacts (target/, build/, source.tar, *.o, *.so) remain excluded. 127291 files added — kernel, relibc, base, bootloader, pkgar, all KDE/Qt frameworks, mesa, wayland, DRM drivers, and every other recipe source.
173 lines
4.6 KiB
QML
173 lines
4.6 KiB
QML
// Copyright (C) 2020 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
|
|
|
import QtQuick
|
|
import QtQuick.Timeline
|
|
import QtQuick3D
|
|
import HelloExample
|
|
|
|
Window {
|
|
id: window
|
|
width: 1280
|
|
height: 720
|
|
visible: true
|
|
|
|
View3D {
|
|
id: view
|
|
anchors.fill: parent
|
|
|
|
environment: SceneEnvironment {
|
|
clearColor: "black"
|
|
backgroundMode: SceneEnvironment.Color
|
|
}
|
|
|
|
Node {
|
|
id: cameraNode
|
|
|
|
PerspectiveCamera {
|
|
id: camera
|
|
position: Qt.vector3d(0, 0, 650)
|
|
}
|
|
|
|
property bool isRotating: false
|
|
PropertyAnimation on eulerRotation.x {
|
|
from: 0
|
|
to: 360
|
|
duration: 20000
|
|
loops: Animation.Infinite
|
|
running: cameraNode.isRotating
|
|
}
|
|
|
|
Timeline {
|
|
id: timeline0
|
|
startFrame: 0
|
|
endFrame: 1000
|
|
enabled: true
|
|
|
|
SequentialAnimation on currentFrame {
|
|
NumberAnimation {
|
|
from: 0
|
|
to: 500
|
|
duration: 4000
|
|
}
|
|
NumberAnimation {
|
|
from: 500
|
|
to: 1000
|
|
duration: 10000
|
|
loops: Animation.Infinite
|
|
}
|
|
}
|
|
|
|
KeyframeGroup {
|
|
target: cameraNode
|
|
property: "isRotating"
|
|
|
|
Keyframe {
|
|
frame: 0
|
|
value: false
|
|
}
|
|
Keyframe {
|
|
frame: 500
|
|
value: true
|
|
}
|
|
}
|
|
|
|
KeyframeGroup {
|
|
target: oldLogo
|
|
property: "isRotating"
|
|
|
|
Keyframe {
|
|
frame: 0
|
|
value: false
|
|
}
|
|
Keyframe {
|
|
frame: 100
|
|
value: true
|
|
}
|
|
}
|
|
|
|
KeyframeGroup {
|
|
target: camera
|
|
property: "z"
|
|
|
|
Keyframe {
|
|
frame: 0
|
|
value: 2000
|
|
}
|
|
Keyframe {
|
|
frame: 100
|
|
value: 2000
|
|
}
|
|
Keyframe {
|
|
frame: 400
|
|
value: 100
|
|
}
|
|
Keyframe {
|
|
frame: 500
|
|
value: 200
|
|
}
|
|
Keyframe {
|
|
frame: 550
|
|
value: 200
|
|
}
|
|
Keyframe {
|
|
frame: 700
|
|
value: 1000
|
|
easing.type: Easing.OutElastic
|
|
}
|
|
Keyframe {
|
|
frame: 750
|
|
value: 1000
|
|
}
|
|
Keyframe {
|
|
frame: 800
|
|
value: 1000
|
|
}
|
|
Keyframe {
|
|
frame: 950
|
|
value: 200
|
|
easing.type: Easing.OutElastic
|
|
}
|
|
Keyframe {
|
|
frame: 1000
|
|
value: 200
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
DirectionalLight {
|
|
eulerRotation.x: 250
|
|
eulerRotation.y: -30
|
|
brightness: 1.0
|
|
ambientColor: "#7f7f7f"
|
|
}
|
|
|
|
Model {
|
|
id: oldLogo
|
|
property real s: 4.75
|
|
property real r: 0
|
|
property bool isRotating: false
|
|
scale: Qt.vector3d(s, s, s);
|
|
source: "oldqtlogo.mesh"
|
|
instancing: ImageInstanceTable {
|
|
gridSize: 40
|
|
gridSpacing: 20
|
|
image: ":/qt_logo.png"
|
|
}
|
|
materials: PrincipledMaterial { baseColor: "white" }
|
|
NumberAnimation {
|
|
target: oldLogo
|
|
property: "r"
|
|
running: oldLogo.isRotating
|
|
from: 0
|
|
to: 360
|
|
duration: 3000
|
|
loops: Animation.Infinite
|
|
}
|
|
onRChanged: rotate(2.5, Qt.vector3d(1, -1, 0), Node.LocalSpace)
|
|
}
|
|
}
|
|
}
|