Skip to content

Commit d173151

Browse files
committed
open the source
1 parent 143b9c1 commit d173151

File tree

244 files changed

+26941
-63
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

244 files changed

+26941
-63
lines changed

.eslintrc

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"extends": "airbnb-base",
3+
"env": {
4+
"browser": true,
5+
"node": true,
6+
"mocha": true,
7+
"es6": true
8+
},
9+
"rules": {
10+
"prefer-const": 0,
11+
"no-plusplus": 0,
12+
"indent": ["error", 4, {
13+
"SwitchCase": 1
14+
}],
15+
"prefer-template": 0,
16+
"no-underscore-dangle": 0,
17+
"arrow-body-style": 0,
18+
"no-shadow": 0,
19+
"no-param-reassign": 0,
20+
"no-mixed-operators": 0,
21+
"no-multi-assign": 0,
22+
"no-bitwise": 0,
23+
"max-len": 0,
24+
"guard-for-in": 0,
25+
"no-restricted-syntax": 0,
26+
"no-floating-decimal": 0,
27+
"comma-dangle": 0,
28+
"no-continue": 0,
29+
"func-names": 0,
30+
"prefer-rest-params": 0,
31+
"prefer-spread": 0,
32+
"space-before-function-paren": ["error", "never"],
33+
"prefer-destructuring": 0
34+
}
35+
}

.gitignore

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
node_modules
22
npm-debug.log
3-
*.sw*
4-
*.un~
3+
.DS_Store
4+
.vscode
5+
.idea
6+
test/hilo3d.test.js
7+
test/screenshot
8+
reports
9+
logs
10+
**/*.map
11+
seinjs-build

README.md

-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
Hilo3d, a WebGL Rendering Engine developed by Alibaba Group.It could help developers build 3D games conveniently in minutes.
44

5-
> 本站点暂时不公开Hilo3d源码,仅提供压缩版本 (正式开源时间参考 [开源计划](https://github.com/hiloteam/Hilo3d/issues/4)
6-
75
### 静态CDN
86
[https://g.alicdn.com/hilo/Hilo3d/1.13.45/Hilo3d.js][cdn-url]
97

doc.conf.json

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"tags": {
3+
"allowUnknownTags": true,
4+
"dictionaries": ["jsdoc","closure"]
5+
},
6+
"source": {
7+
"include":"src",
8+
"includePattern": ".+\\.js(doc|x)?$",
9+
"excludePattern": "(^|\\/|\\\\)_"
10+
},
11+
"plugins": [
12+
"plugins/markdown",
13+
"plugins/summarize"
14+
],
15+
"templates": {
16+
"private": true,
17+
"cleverLinks": true,
18+
"monospaceLinks": false,
19+
"default": {
20+
"outputSourceFiles": true
21+
}
22+
},
23+
"opts":{
24+
"template":"docs/template",
25+
"encoding":"utf8",
26+
"destination":"docs",
27+
"recurse":true,
28+
"readme":"README.md"
29+
}
30+
}

docs/template/.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
node_modules/
2+
demo/dist/

gulpfile.js

+28-29
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,38 @@
1-
const gitlabPath = '../Hilo3d';
2-
3-
const { src, dest, series, parallel } = require('gulp');
4-
const del = require('del');
1+
const { src, dest, series, watch } = require('gulp');
2+
const uitest = require('gulp-uitest');
53
const replace = require('gulp-replace');
6-
4+
const concat = require('gulp-concat');
75
const pkg = require('./package.json');
8-
const gitlabPkg = require(`${gitlabPath}/package.json`);
96

10-
const delTask = (cb) => {
11-
del(['build', 'docs', 'examples', 'src', 'test', 'types'], {
12-
force:true
13-
}).then(()=>{
14-
cb();
15-
});
7+
const testBuildTask = () => {
8+
return src('test/spec/**/*.js')
9+
.pipe(replace(/^/, '(function(){\n'))
10+
.pipe(replace(/$/, '\n})();\n'))
11+
.pipe(concat('hilo3d.test.js'))
12+
.pipe(dest('test/'));
13+
};
14+
15+
const testTask = () => {
16+
return src('test/index.html')
17+
.pipe(uitest({
18+
width: 600,
19+
height: 480,
20+
hidpi: false,
21+
useContentSize: true,
22+
show: false
23+
}));
1624
};
1725

18-
const copyTask = () => {
19-
return src([
20-
`${gitlabPath}/+(build|examples|docs|types)/**/*`,
21-
`${gitlabPath}/+(src)/loader/**/*`,
22-
`${gitlabPath}/README.md`
23-
])
26+
const readmeTask = () => {
27+
return src('./README.md')
28+
.pipe(replace(/Hilo3d\/[\d\.]+\/Hilo3d\.js/g, `Hilo3d/${pkg.version}/Hilo3d.js`))
2429
.pipe(dest('./'));
2530
};
2631

27-
const versionTask = () => {
28-
return src('./package.json')
29-
.pipe(replace(/"version"[\s]*:[\s]*"[\d\.]+"/g, `"version": "${gitlabPkg.version}"`))
30-
.pipe(dest('./'))
32+
const watchTask = () => {
33+
watch(['test/spec/**/*.js'], series(testBuildTask, testTask));
3134
};
3235

33-
exports.del = delTask;
34-
exports.copy = series(delTask, copyTask);
35-
exports.version = versionTask;
36-
exports.default = series(parallel(versionTask, series(delTask, copyTask)), function logTask(cb){
37-
cb();
38-
console.log(`Hilo3d update: ${pkg.version} => ${gitlabPkg.version}`);
39-
});
36+
exports.test = series(testBuildTask, testTask);
37+
exports.watch = series(testBuildTask, testTask, watchTask);
38+
exports.readme = readmeTask;

package.json

+74-30
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,76 @@
11
{
2-
"name": "hilo3d",
3-
"version": "1.13.45",
4-
"description": "Hilo3d, a WebGL 3d engine.",
5-
"main": "build/Hilo3d.js",
6-
"types": "types/index.d.ts",
7-
"scripts": {
8-
"test": "echo \"Error: no test specified\" && exit 1",
9-
"contributor": "git-contributor"
10-
},
11-
"repository": {
12-
"type": "git",
13-
"url": "https://github.com/hiloteam/Hilo3d.git"
14-
},
15-
"keywords": [
16-
"WebGL",
17-
"3D",
18-
"hilo"
19-
],
20-
"author": "06wj",
21-
"license": "MIT",
22-
"bugs": {
23-
"url": "https://github.com/hiloteam/Hilo3d/issues"
24-
},
25-
"homepage": "https://github.com/hiloteam/Hilo3d#readme",
26-
"devDependencies": {
27-
"del": "^3.0.0",
28-
"git-contributor": "^1.0.7",
29-
"gulp": "^4.0.2",
30-
"gulp-replace": "^1.0.0"
31-
}
2+
"name": "hilo3d",
3+
"version": "1.13.45",
4+
"description": "Hilo3d, a WebGL 3d engine.",
5+
"main": "build/Hilo3d.js",
6+
"types": "types/index.d.ts",
7+
"scripts": {
8+
"test": "gulp test",
9+
"watch": "webpack --watch --env.development",
10+
"dev": "npm run watch",
11+
"debug": "webpack --watch --env.debug",
12+
"build": " webpack",
13+
"release": "tnpm update && webpack -p",
14+
"doc": "jsdoc -c doc.conf.json",
15+
"eslint-fix": "eslint --fix ./src",
16+
"seinjs-dev": "webpack --watch --env.development --seinjs",
17+
"seinjs-build": "webpack --seinjs"
18+
},
19+
"repository": {
20+
"type": "git",
21+
"url": "https://github.com/hiloteam/Hilo3d.git"
22+
},
23+
"keywords": [
24+
"hilo",
25+
"3d",
26+
"WebGL"
27+
],
28+
"author": "06wj",
29+
"license": "MIT",
30+
"bugs": {
31+
"url": "https://github.com/hiloteam/Hilo3d/issues"
32+
},
33+
"homepage": "https://hiloteam.github.io/Hilo3d",
34+
"devDependencies": {
35+
"@babel/core": "^7.1.0",
36+
"@babel/preset-env": "^7.1.0",
37+
"babel-loader": "^8.0.2",
38+
"del": "^3.0.0",
39+
"eslint": "^5.6.0",
40+
"eslint-config-airbnb-base": "^13.1.0",
41+
"eslint-loader": "^2.1.1",
42+
"eslint-plugin-import": "^2.9.0",
43+
"glslify": "^6.0.1",
44+
"glslify-import-loader": "^0.1.2",
45+
"glslify-loader": "^1.0.2",
46+
"gulp": "^4.0.2",
47+
"gulp-concat": "^2.6.1",
48+
"gulp-replace": "^1.0.0",
49+
"gulp-uitest": "^1.0.0",
50+
"jsdoc": "^3.5.5",
51+
"mocha": "^5.2.0",
52+
"raw-loader": "^0.5.1",
53+
"should": "^13.2.3",
54+
"should-sinon": "^0.0.6",
55+
"sinon": "^6.3.4",
56+
"string-replace-loader": "^2.1.1",
57+
"webpack": "^4.20.2",
58+
"webpack-cli": "^3.1.1",
59+
"wrapper-webpack-plugin": "^2.0.0"
60+
},
61+
"dependencies": {
62+
"amc": "^1.0.6",
63+
"gl-constants": "^1.0.0",
64+
"gl-extensions-constants": "^1.0.0",
65+
"gl-matrix": "^2.4.0",
66+
"glsl-transpose": "^1.0.0",
67+
"hilojs": "^2.0.0",
68+
"object-assign": "^4.1.1",
69+
"object-values": "^2.0.0",
70+
"object.keys": "^0.1.0",
71+
"parse-hdr": "^1.0.0",
72+
"pinkie-promise": "^2.0.1",
73+
"ray-3d": "^1.1.1",
74+
"webgl-debug": "^2.0.1"
75+
}
3276
}

src/Hilo3d.js

+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
import * as util from './utils/util';
2+
import * as GLTFExtensions from './loader/GLTFExtensions';
3+
4+
export { util };
5+
export { GLTFExtensions };
6+
export { default as Class } from './core/Class';
7+
export { default as EventMixin } from './core/EventMixin';
8+
export { default as Fog } from './core/Fog';
9+
export { default as Mesh } from './core/Mesh';
10+
export { default as Node } from './core/Node';
11+
export { default as SkinedMesh } from './core/SkinedMesh';
12+
export { default as Stage } from './core/Stage';
13+
export { default as Tween } from './core/Tween';
14+
export { default as version } from './core/version';
15+
export { default as BoxGeometry } from './geometry/BoxGeometry';
16+
export { default as Geometry } from './geometry/Geometry';
17+
export { default as GeometryData } from './geometry/GeometryData';
18+
export { default as MorphGeometry } from './geometry/MorphGeometry';
19+
export { default as PlaneGeometry } from './geometry/PlaneGeometry';
20+
export { default as SphereGeometry } from './geometry/SphereGeometry';
21+
export { default as Camera } from './camera/Camera';
22+
export { default as PerspectiveCamera } from './camera/PerspectiveCamera';
23+
export { default as OrthographicCamera } from './camera/OrthographicCamera';
24+
export { default as Buffer } from './renderer/Buffer';
25+
export { default as capabilities } from './renderer/capabilities';
26+
export { default as extensions } from './renderer/extensions';
27+
export { default as Framebuffer } from './renderer/Framebuffer';
28+
export { default as glType } from './renderer/glType';
29+
export { default as logGLResource } from './renderer/logGLResource';
30+
export { default as Program } from './renderer/Program';
31+
export { default as RenderInfo } from './renderer/RenderInfo';
32+
export { default as RenderList } from './renderer/RenderList';
33+
export { default as VertexArrayObject } from './renderer/VertexArrayObject';
34+
export { default as WebGLRenderer } from './renderer/WebGLRenderer';
35+
export { default as WebGLResourceManager } from './renderer/WebGLResourceManager';
36+
export { default as WebGLState } from './renderer/WebGLState';
37+
export { default as BasicLoader } from './loader/BasicLoader';
38+
export { default as CubeTextureLoader } from './loader/CubeTextureLoader';
39+
export { default as GLTFLoader } from './loader/GLTFLoader';
40+
export { default as GLTFParser } from './loader/GLTFParser';
41+
export { default as AliAMCExtension } from './loader/AliAMCExtension';
42+
export { default as HDRLoader } from './loader/HDRLoader';
43+
export { default as KTXLoader } from './loader/KTXLoader';
44+
export { default as LoadCache } from './loader/LoadCache';
45+
export { default as LoadQueue } from './loader/LoadQueue';
46+
export { default as ShaderMaterialLoader } from './loader/ShaderMaterialLoader';
47+
export { default as TextureLoader } from './loader/TextureLoader';
48+
export { default as Loader } from './loader/Loader';
49+
export { default as Texture } from './texture/Texture';
50+
export { default as LazyTexture } from './texture/LazyTexture';
51+
export { default as CubeTexture } from './texture/CubeTexture';
52+
export { default as DataTexture } from './texture/DataTexture';
53+
export { default as Shader } from './shader/Shader';
54+
export { default as BasicMaterial } from './material/BasicMaterial';
55+
export { default as GeometryMaterial } from './material/GeometryMaterial';
56+
export { default as Material } from './material/Material';
57+
export { default as PBRMaterial } from './material/PBRMaterial';
58+
export { default as semantic } from './material/semantic';
59+
export { default as ShaderMaterial } from './material/ShaderMaterial';
60+
export { default as AxisHelper } from './helper/AxisHelper';
61+
export { default as AxisNetHelper } from './helper/AxisNetHelper';
62+
export { default as CameraHelper } from './helper/CameraHelper';
63+
export { default as AmbientLight } from './light/AmbientLight';
64+
export { default as AreaLight } from './light/AreaLight';
65+
export { default as DirectionalLight } from './light/DirectionalLight';
66+
export { default as CubeLightShadow } from './light/CubeLightShadow';
67+
export { default as Light } from './light/Light';
68+
export { default as LightManager } from './light/LightManager';
69+
export { default as LightShadow } from './light/LightShadow';
70+
export { default as PointLight } from './light/PointLight';
71+
export { default as SpotLight } from './light/SpotLight';
72+
export { default as Animation } from './animation/Animation';
73+
export { default as AnimationStates } from './animation/AnimationStates';
74+
export { default as MeshPicker } from './utils/MeshPicker';
75+
export { default as Ticker } from './utils/Ticker';
76+
export { default as log } from './utils/log';
77+
export { default as Cache } from './utils/Cache';
78+
export { default as browser } from './utils/browser';
79+
export { default as WebGLSupport } from './utils/WebGLSupport';
80+
export { default as constants } from './constants';
81+
export * from './math/';

0 commit comments

Comments
 (0)