mirror of
https://github.com/smallmain/cocos-enhance-kit.git
synced 2025-01-15 15:31:08 +00:00
65 lines
1.5 KiB
JavaScript
65 lines
1.5 KiB
JavaScript
|
// import HTMLCanvasElement from './HTMLCanvasElement'
|
||
|
import { innerWidth, innerHeight } from './WindowProperties'
|
||
|
|
||
|
let hasModifiedCanvasPrototype = false
|
||
|
let hasInit2DContextConstructor = false
|
||
|
let hasInitWebGLContextConstructor = false
|
||
|
|
||
|
export default function Canvas() {
|
||
|
const canvas = wx.createCanvas()
|
||
|
|
||
|
canvas.type = 'canvas'
|
||
|
|
||
|
// canvas.__proto__.__proto__.__proto__ = new HTMLCanvasElement()
|
||
|
|
||
|
const _getContext = canvas.getContext
|
||
|
|
||
|
canvas.getBoundingClientRect = () => {
|
||
|
const ret = {
|
||
|
top: 0,
|
||
|
left: 0,
|
||
|
width: window.innerWidth,
|
||
|
height: window.innerHeight
|
||
|
}
|
||
|
return ret
|
||
|
}
|
||
|
|
||
|
canvas.style = {
|
||
|
top: '0px',
|
||
|
left: '0px',
|
||
|
width: innerWidth + 'px',
|
||
|
height: innerHeight + 'px',
|
||
|
}
|
||
|
|
||
|
canvas.addEventListener = function (type, listener, options = {}) {
|
||
|
// console.log('canvas.addEventListener', type);
|
||
|
document.addEventListener(type, listener, options);
|
||
|
}
|
||
|
|
||
|
canvas.removeEventListener = function (type, listener) {
|
||
|
// console.log('canvas.removeEventListener', type);
|
||
|
document.removeEventListener(type, listener);
|
||
|
}
|
||
|
|
||
|
canvas.dispatchEvent = function (event = {}) {
|
||
|
console.log('canvas.dispatchEvent' , event.type, event);
|
||
|
// nothing to do
|
||
|
}
|
||
|
|
||
|
Object.defineProperty(canvas, 'clientWidth', {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return innerWidth
|
||
|
}
|
||
|
})
|
||
|
|
||
|
Object.defineProperty(canvas, 'clientHeight', {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return innerHeight
|
||
|
}
|
||
|
})
|
||
|
|
||
|
return canvas
|
||
|
}
|