twitchapon-anim

Basic Twitchapon Receiver/Visuals
git clone git://bsandro.tech/twitchapon-anim
Log | Files | Refs | README | LICENSE

buf_js.go (1240B)


      1 // Copyright 2019 The Ebiten Authors
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //     http://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 
     15 package jsutil
     16 
     17 import (
     18 	"syscall/js"
     19 )
     20 
     21 // temporaryBuffer is a temporary buffer used at gl.readPixels or gl.texSubImage2D.
     22 // The read data is converted to Go's byte slice as soon as possible.
     23 // To avoid often allocating ArrayBuffer, reuse the buffer whenever possible.
     24 var temporaryBuffer = js.Global().Get("ArrayBuffer").New(16)
     25 
     26 func TemporaryUint8Array(byteLength int) js.Value {
     27 	if bufl := temporaryBuffer.Get("byteLength").Int(); bufl < byteLength {
     28 		for bufl < byteLength {
     29 			bufl *= 2
     30 		}
     31 		temporaryBuffer = js.Global().Get("ArrayBuffer").New(bufl)
     32 	}
     33 	return js.Global().Get("Uint8Array").New(temporaryBuffer, 0, byteLength)
     34 }