| accessing |
| bMipmap
|
^ bMipmap.
|
| extension
|
^ extension.
|
| extent
|
^ extent.
|
| fileName
|
^ fileName.
|
| form
|
^form.
|
| isLoaded
|
locator ifNil:[^true].
^fileName notNil
|
| isStatic: bool
|
self isStatic = bool ifTrue:[^ self].
isStatic _ bool.
|
| magFilter
|
^GLLinear
|
| minFilter
|
^bMipmap ifTrue:[GLLinearMipmapLinear] ifFalse:[GLLinear]
|
| printOn: aStream
|
fileName ifNil:[aStream nextPutAll: 'TForm[Dynamic Texture]']
ifNotNil:
[aStream nextPutAll: 'TForm[', self fileName, ']'.].
aStream nextPutAll:'<', self croquetUID asString,'>'.
|
| resetUpdateRect
|
updateRect _ nil.
|
| scaleTexture: oldForm to: scaledSize
|
| mmForm |
oldForm extent = scaledSize ifTrue:[^oldForm].
mmForm := Form extent: scaledSize depth: 32.
(WarpBlt current toForm: mmForm)
sourceForm: form destRect: mmForm boundingBox;
combinationRule: 3;
cellSize: 2;
warpBits.
^mmForm
|
| shrinkFit
|
^ bShrinkFit.
|
| shrinkFit: bSF
|
bShrinkFit _ bSF.
|
| trueExtent
|
^ form extent.
|
| updateAll
|
self updateRect: form boundingBox.
|
| updateArea: aRectangle with: aForm
|
"the form contains new data to copy into the rectangle area specified"
| fixBlt |
fixBlt := BitBlt toForm: aForm.
fixBlt combinationRule: 40 "fixAlpha:with:".
fixBlt halftoneForm: (Bitmap with: 16rFF000000).
fixBlt destRect: fixBlt clipRect; copyBits.
form copy: aRectangle from: 0@0 in: aForm rule: Form over.
self updateRect: aRectangle.
|
| updateRect
|
^ updateRect.
|
| updateRect: ur
|
updateRect _ updateRect ifNil:[ur] ifNotNil:[updateRect quickMerge: ur].
|
| upload: ogl dirtyRect: aRectangle
|
"TODO: Later only upload the dirty portion"
| level scaledSize dirtyRect autoMip internalFormat mipform|
autoMip := bMipmap and:[ogl autoMipmap].
form unhibernate.
dirtyRect := aRectangle.
isStatic ifTrue:[
"Static (possibly compressed) textures typically require complete uploads;
as they don't change often just upload everything."
dirtyRect := 0@0 extent: form extent.
].
dirtyRect := dirtyRect intersect: form boundingBox.
ogl glBindTexture: GLTexture2d with: glID.
ogl glTexParameteri: GLTexture2d with: GLTextureMinFilter with: self minFilter.
ogl glTexParameteri: GLTexture2d with: GLTextureMagFilter with: self magFilter.
autoMip ifTrue:[ogl glTexParameteri: GLTexture2d with: GLGenerateMipmapSGIS with: true].
"TODO: This would be the right place to figure out what the initial size of the texture should be given that we're already low on texture memory."
scaledSize := form extent.
"specific optimization for morphic textures"
(dirtyRect extent ~= form extent "needed since first-time upload *must* use glTexImage2D"
and:[form depth = 32 "needed since we only upload 32bpp forms"
and:[scaledSize = form extent "needed since we don't scale here"
and:[autoMip or:[bMipmap not "only allow for non-mipmaps"]]]]) ifTrue:[
ogl glPixelStorei: GLUnpackRowLength with: form width.
ogl glPixelStorei: GLUnpackSkipRows with: dirtyRect top.
ogl glPixelStorei: GLUnpackSkipPixels with: dirtyRect left.
ogl glTexSubImage2D: GLTexture2d with: 0
with: dirtyRect left with: dirtyRect top
with: dirtyRect width with: dirtyRect height
with: ogl texturePixelFormat with: ogl texturePixelType
with: form bits.
ogl glPixelStorei: GLUnpackRowLength with: 0.
ogl glPixelStorei: GLUnpackSkipRows with: 0.
ogl glPixelStorei: GLUnpackSkipPixels with: 0.
^self].
level _ 0.
"figure out the internal format to use"
internalFormat := ogl textureInternalFormat.
isStatic ifTrue:[
(ogl hasExtension: #'GL_ARB_texture_compression') ifTrue:[
"internalFormat := ogl textureInternalFormatCompressed."
].
].
mipform _ form.
[
mipform := self scaleTexture: mipform to: scaledSize.
ogl glTexImage2D: GLTexture2d
with: level with: internalFormat
with: mipform width with: mipform height
with: 0
with: ogl texturePixelFormat
with: ogl texturePixelType
with: mipform bits.
autoMip not
and:[bMipmap
and:[scaledSize x > 1 or:[scaledSize y > 1]]]] whileTrue:[
scaledSize := (scaledSize // 2) max: (1@1).
level := level + 1.
].
|
| initialize |
| calcMemUsed
|
memUsed _ form extent area*4.
bMipmap ifTrue:[memUsed _ memUsed + (memUsed//3)].
|
| createPrimitive: ogl
|
| holder |
holder := WordArray new: 1.
ogl glGenTextures: 1 with: holder.
glID _ (holder at: 1).
updateRect _ form boundingBox.
^ true.
|
| delete
|
self destroyPrimitive: Croquet world ogl.
|
| destroy: ogl
|
self destroyPrimitive: ogl.
|
| destroyPrimitive: ogl
|
ogl ifNil:[ glID _ nil. ^ self]. "Nothing to destroy"
glID ifNotNil:[
ogl glDeleteTextures: 1 with: (WordArray with: glID).
glID _ nil.].
|
| initialize: fName form: baseForm mipmap: bMM shrinkFit: bSF extension: ext
|
bMipmap _ bMM.
bShrinkFit _ bSF.
fileName _ fName.
isStatic _ fName isNil.
extension _ ext.
self setupForm: baseForm.
|
| setupForm: baseForm
|
| aForm size tsize |
aForm _ baseForm.
extent _ baseForm extent. "before we scale it down"
aForm depth = 32 ifFalse: [aForm _ aForm asFormOfDepth: 32.].
size _ aForm width @ aForm height.
bShrinkFit
ifTrue:[size := size asSmallerPowerOfTwo]
ifFalse: [size := size asLargerPowerOfTwo].
size = aForm extent ifTrue:[form _ aForm]
ifFalse:[ form := Form extent: size depth: 32.
aForm displayScaledOn: form].
tsize_ (size*32/size max) asLargerPowerOfTwo.
thumb _ Form extent:tsize depth:32.
aForm displayScaledOn:thumb.
extension = #colorKeyZero ifTrue:[form colorKeyZero. ^self].
extension = #colorKey ifTrue:[form colorKeyAlpha. ^self].
form fixAlpha.
self updateAll.
self calcMemUsed.
|
| instance creation |
| defaultForm
|
^DefaultForm ifNotNil:[DefaultForm] ifNil:[DefaultForm _ Form extent: 64@64 depth: 32 bits: (Base64MimeConverter mimeDecode:
'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
Iv8SERD/ERERDv8AAAEH/wEBAAr/AQABCv8BAAAP/wEBAP8AAAH/AQAADv8AAAEb/1UAAP+H
AAD/ugAA/wAAAf8BAAD/IgAACv8AAAEL/wAAEf+qAAAK/6oAARP/qwAC/7oAAP+rAAH/qwAC
Cv+qAAEL/6oAAP9UAAAK/xEREhP/ERER/xEQEf9VAAD/qQABDv+7AAAK/6sBAQr/uwAAE/+r
AQD/qgAA/4gAAP8QEhEK/wAAAR//EBIS/wAAEv8SEBL/ERIS/wAAI/8AAAH/EREQDv8AAAEH
/wEAAQr/AAABB/8BAAAO/wAAATf/IQAA/wAAAf8BAAD/AQAB/wEAAP8AAAH/AQAA/xAAAP9V
AAD/qgAB/7sAAf8iAQH/AQAAEv8AAAE7/5gAAP+rAAH/qgAA/6oAAf+qAAD/qQAA/6oAAf+7
AAD/qwEB/6oAAf+IAAD/EQAA/xESEv8RERIK/xEREQf/lwAACv+qAAEv/7sAAP+rAAD/qwAB
/6oAAP+YAAD/qgAB/6sBAf+YAAD/IgAA/wAAAf8BAAAK/wAAARf/AQEB/zMAAf8hAAD/AQAA
/xEAABb/AAABE/8BAAH/AAAB/wAQAf8RAAEK/wAAAQf/EQAAFv8AAAEK/4gAACP/qgAB/7sA
AP94AAD/EQAA/wEAAP8BABD/AAEB/wAAAQ7/qgAAg/+rAQH/mQEA/7wBAf+qAAH/mQAA/6oA
AP+rAAH/qQAC/0UAAf8iAAD/EBER/xEREv8iAAD/VAAA/6oAAv+rAAD/ugEA/6oAAP+qAAH/
mQAA/6sAAf+8AAD/uwAA/7sBAf9mADT/IwAB/wAAAf8RAAD/AAAB/wABAP93AAD/qgAACv+7
AAAj/4kAAP9WAAH/VQAA/yIAAf8RAAD/AQAB/wAAAf8AABIW/wAAAQr/AAEAN/8AAAH/AQAB
/wEAAP8AARH/AREA/yEAAP9EAAD/ASIA/wAAAf8iIiH/AAAB/wABAP+ZAAAK/6oAASv/qwAB
/6oBAf+rAAH/qgAA/6sAAf+rAQD/qgEA/6sAAf+HAAD/ERAQCv8AAAEK/yIAADv/iQAA/7sA
AP+rAAH/qwAA/6oAAP+qAQH/uwEC/6kAAP+qAAH/uwAA/3cAAP93AQD/ERER/wEAAAr/AAAB
P/8AEQD/VgAA/7sAAP+8AAD/qgAC/6oAAP+8AAD/uwAA/4gAAP9VAQD/VAAA/yEAAP8AAAH/
AQAA/wAAAQr/AQABM/8AAAH/ERER/yIjIf8QERH/AAAB/yIhIv8AACL/EBES/xEREP8RERH/
AQAB/yEhIgr/AAABF/8zAAD/iAAA/6sAAf+qAQD/ugAACv+qAAEX/7sBAP+rAAH/qQAA/6sA
AP+HAAAO/wAAARP/IgAA/yMAAP9EAAH/vAABCv+qAAEr/6oBAf+qAAD/uwAB/6wAAf+ZAAD/
qwAC/6kAAP+rAAH/IgAA/xEAAA7/AAABE/8hAAD/uwAA/7wAAf+pAAAK/6oAACP/uwAB/6kA
AP+qAQH/qgAA/3YAAP9VAAD/AAAB/wEAAAr/AAABB/8RERAK/xERERf/EREQ/xIREf8BAAD/
AAEA/xEREQr/AAABC/8CAAD/AAARCv8AAAE3/yIAAP9EAAD/RQAB/7sAAP+8AAH/qwEB/6oB
Af+8AAH/mAAA/6kAAP+qAAD/hwAA/wABAAr/AAABF/8iAAD/ERER/yIAAP+qAAH/vAAADv+q
AAAz/6sAAf+qAAD/qgAB/6oAAv+qAAD/qgEA/3cAAP8hAAD/AQEB/wABAf8AAAH/IgAACv+I
AAAf/6oAAf+qAQD/qgAB/6oAAP+7AAH/qwAC/6oAAAr/mQAAEv8AAAET/zMAM/8iIiH/IiIi
/yEAAAr/ERARZ/8iIiL/IyIi/xEREv8jISP/EBER/wAiAP8RERH/EhES/xESEP8iIiL/EhES
/xEREv8zAAH/VQAB/1UAAP93AAH/mAAy/7sAAf+7AAD/qwAA/1UAAP8SERH/ERER/xEREP8R
EREK/1UAAHf/qwAB/5kAAP+7AQH/mgA0/5kAAP+qAAD/qgAB/7wAAP+6AQD/qQAA/6sAAf9l
AAD/EhER/xIREP8iIiL/MwAA/yIiIv9UAAD/qgAB/7sAAP+6AAD/uwEB/5gzAP+qAQL/qgAA
/5kAAP+8AAD/EREP/xIREQr/ERERF/8AAAH/AQAA/wAAAf8jAAH/EAAACv8BAAAO/wAAAQr/
AQAAD/8AAAH/AQEA/wEAASb/AAABD/8AABH/hwAA/1UAAAr/ABEBDv8AAAEn/wEAAP+qAAH/
qgAA/6kAAP+aAAD/vAAA/7sAAP+7AAH/vAAACv+ZAAAL/6kAAP+IAAEO/wAAAQf/AQAACv8A
AAE3/1QAAP+qAAH/qgAA/6oBAf+qAAH/qgAA/6sAAP+rAAH/qwAA/xAAAf8SAQD/EhAR/xER
EQr/AAABD/8BAAH/iAAA/2cAAQr/RAAAB/8iAAAK/xEAAAv/AAAB/wEBABL/AAABB/8CAAEO
/wAAATv/AQAA/wAAAf8BAQH/AAAB/wEAEf8SAAD/EBER/wARAf8AAAH/EAAA/xABAP8AAAH/
AQAC/4gBAAr/qgABB/+ZAQAO/7sAAB//qgAB/6oBAP+7AQH/ugAA/6oBAP94AAD/EgAACv8A
AAEH/wEAAQr/AAABCv+qAAEK/6kAASf/qwAA/6oBAf+pAAD/qgEB/yIAAP8iISH/EBAR/xEQ
Ef8RAAAK/wAAARP/mQA0/7sAAP+rAAD/qQAADv+ZAAAb/3cAAP9UAAD/AQAB/wABAP8AEQD/
AAEBDv8AAAEH/wEAAAr/AAABF/8BAAH/AAEA/wEBAf8BAAD/ABEBCv8AAAEL/yIAAP8QAAAK
/xEAABv/NAAB/3cAAP92AAH/mTMz/4cAAP+IAAAO/6oAATv/ugAA/6oAAf+ZAAD/qgAA/2cA
AP8iAAD/ERAQ/xIAAf8RERH/EBAR/yMAAP+IAAD/iAAB/5gAAA7/qgABB/+YAAAK/wAQAB//
EAEA/wAAAf8RAAD/AQAA/wAAAf+aAAD/qgABCv+7AAAb/5kAAP+qAAD/vAAB/5kAAP9mAAH/
AAASDv8AAAEP/xIREv8iAAH/EQAAEv8AAAGX/wEAAP8AAAH/EhER/wEAAf8BAAD/AAAB/yIA
AP8AAAH/IgAB/wARAf8BAAD/EAAA/wAQAP8SAAD/MwAA/2YAAP+IAAD/mQAA/6oAAP+rAQH/
qgAB/5gAAP+rAAD/qgEA/1UAAP8BIgD/ERER/xAREf8zAAD/ERES/xESEv9VAAD/mQAB/7sA
AP+aAAH/vAAB/5kAAA7/AAABF/8RAAD/AAAB/wEAAP8AAAH/mQAADv+7AAAj/6oAAP+qAAH/
qgAA/6sAAP+rAQH/AAAB/wAAAv8AAREK/wAAASP/MgAA/7oAAP93AAD/iAAA/zIAAP8RAAD/
AAAB/wAAIgr/AAABCv8BAAAS/wAAARv/ERES/xEREP8RERH/IgAA/wEBI/8REBEK/xERESv/
IyIj/xEREf8SERH/MwAA/0UAAP92AQD/iQAA/3YAAP8AAAH/EQAADv8AAAEP/xEREf8zAAH/
RAEACv+7AAAT/6kAAf8BABL/AAAB/xEAABL/AAABV/+ZAAD/qgAB/6oAAP+qAAH/qgAA/6oA
Af+6AAD/qwAA/6oAAf8QAAD/AQAA/xEREv8AAAH/ERES/xEQEf+rAAH/vAAA/4gBAP+ZAAD/
iAAA/6kAAAr/IQAAB/8AAQAK/wAAASf/AAAS/xAREf8RERL/EhER/yIiIv8SEBL/ERER/wAB
Af8SAAAK/wAAAQr/AQABK/8AAAH/EhES/xEAAP8BAAD/EgAB/zMAAP9UAAD/EQAA/wAAAf8R
EBEO/wAAATf/AAEB/xEREf9EAAD/uwAA/6oAAP8AAQH/AAAB/xEQEf8AAAH/IiIh/yMhIf8i
ISH/mQAADv+7AAAf/6oBAf+rAAH/qgEB/6oAAf+ZAQD/qwAB/xIREQr/IiIjS/8RERH/EhEQ
/5gAAP+pAQH/qwAB/5oAAP+qAQH/uwAA/7sAAf+qAQL/qgAB/5kAAP+YAAD/ZwA1/yMiIv8j
ISL/IiIj/wAAIgr/ERERD/8QERH/AAEi/xAREgr/AAABG/8BAAH/AAEB/wEAAf8AAAH/EhIR
/wEAAQr/IgAAP/8REhH/AAER/xEAAP8BEAD/AREA/xIAAP8REBH/EQAA/xIBAf9VAAD/ZwA0
/xEREP8AAAH/AQAA/xEAAAr/AAABD/8BAAD/dwAA/6sAAAr/qgABM/+rAAL/qgAC/6oAAP+r
AAH/vAAA/3cAAP8iAAD/IiIj/yIiIv8hIiH/ERES/4cAAAr/qgAAL/+pAAD/qwAB/6oAAP+q
AAH/uwAA/6oAAf+qAQH/qgAB/6oBAf8zADT/IwACCv8AAAET/xEREf8AAAH/AAAR/xIREgr/
ERERDv8AAAEH/wEAABL/AAABB/8SEhEK/wAAAS//IyIi/xEAAP8iIiL/IyEi/yIiIf8iIiL/
AAEA/wAAAf8BIgH/AQAA/wEAAQ7/AAABE/8AAQD/AAAB/3gAAP+qAQEO/6oAAAf/qwECCv+q
AAEj/6sAAv+rAAH/VQAA/yMiI/8AAAH/AQAA/wAAAf8zAAAK/6sBAS//qgAB/6oAAP+rAQD/
qwAC/7sAAP+qAAD/qwAC/6kAAP+qAAD/ugAA/zMAARb/AAABD/9VAAD/RQAA/0MAAAr/AAAB
B/8AAQAK/wEAAAr/AAABCv8BAAAK/wAAAQ//EQAA/wAAAf8BAAAK/wAAAQf/AAARGv8AAAEX
/wEAAP8SERH/IiIi/xIREf94AAEK/6sAASf/qQAB/6sAAf+rAQH/qgEA/6sAAf+rAAD/mAAA
/2cANf8iAQEK/wAAAXf/AQAA/wEQAP9EAQD/qwEB/6oBAf+YAAD/qgAB/6sAAf+ZAAD/qgEB
/6oAAP+7AAD/qgAB/7sAAP+JAAL/IQAB/wAAAf8AAQD/AAAB/wABAP8AAAH/RQAB/4gAAP+J
AAH/VQAA/1YAAf8BAAD/AAAB/wEBAAr/AAABF/8BAQH/AAEB/wEAAP8AAAH/AAEAFv8AAAEH
/yEAABb/AAABF/8iIiH/ERAQ/wEAI/8zMwD/mQAzCv+ZAACX/5gAAP+qAAH/qwEB/7sBAP+Z
AAD/ugAA/7wAAf9mMwD/AgEC/xEREf8RERD/AAAB/yEAAf+rAQD/qwEB/6oAAP+JAAD/iAEB
/7wAAf+sAAH/qgAB/6oAAP+qAAH/mQAA/6sAAf+HAAD/VgEA/wABAP8BEQH/EQAA/wEAAP8A
AAH/VAAA/7wAAP+rAAH/mQAA/6oAAQr/mQAAF/+rAAH/iQAB/2YAAP8hAAD/IgAAFv8AAAEb
/wEAAf8AAAH/EgEB/wABIv8RAAD/AAARCv8AAAEf/wEAAf8BAAD/AAAB/wEAAP9VAAH/hwAA
/4gAAAr/qwABB/+rAAAK/6sAARP/qgAA/6sAAf+IAAH/EQAACv8AAAEj/wABEv8RAQD/EQAA
/6oAAP+rAAH/qgAB/6kAAf+rAAEK/6oAARv/qgAA/6sAAv+qAQH/qQAA/6oAAf9mAQIK/wAA
AQv/EQAA/xAREAr/AAABP/9VAAD/iQAA/6oAAf+rAAL/qQAA/6oAAv+qAAD/qwAA/6sAAf+I
AAD/mAAA/3cAAf9EAAD/QwAA/xAAABb/AAABC/8AASL/AAACGv8AAAEK/wERAEv/AQAS/zMA
Av9WAQH/eAAB/6oAAP+rAAH/qwAC/6sBAf+8AAH/EQAA/wEBAf8AAAH/AQEA/xEREP8RERL/
dwAA/6oAAP+qAQAK/6oAAA//qQAB/6sAAf+pAAEO/6oAAQr/qQAAE/8iAAH/AAAB/wEAAP8S
AAAK/wAAASf/EhER/1UBAP+7AQH/qgAC/6oAAf+rAAD/qgAA/6wBAv+qAQIK/6oAARf/qwAA
/6oAAP+IAAD/hwAA/4gAAAr/RAAAC/8QAAD/AAEAEv8AAAEP/wABAf8AAAH/AQABEv8AAAFj
/wEAAf8BARP/IgAA/zMzAP8zAAL/iAAA/4gAAf+ZAAD/dwAB/3cAAP8RAAD/EBEQ/yIAAf8R
AAD/VQAA/5oANP+7AAD/qwAC/5oAAP+rAAH/uwAB/7wAAP+qAAD/qQABCv+qAAB7/6sAAP+r
AAH/VAAA/xEREf8AAAH/EgAA/xEAAP8AAAH/IgAA/1UAAP+ZAAH/uwAB/6oAAP+qAAH/mgAA
/6kBAf+qAQD/qwAB/6oAAf+rAAH/qgAA/5gAAP+ZAAD/ugAA/7wAAP+IAAD/ZwAz/wABAf8A
AAH/AAAQDv8AAAG7/wEAAf8AAAH/AAAQ/wIBEf8AAAH/AQER/wAAAf8BAAD/AAAB/wAAEf8A
EQD/IgAA/0QAAP9mAAD/RQAA/yIAAf8RAAH/EQAA/xAAAP8RERH/ZgAC/6oAAf+qAQH/qgAB
/6oAAP+rAAH/qgAB/5kAAP+7AAH/qgAA/6sAAf+YAAD/qwEA/3YAAP9FAAD/EQAA/wAAAf8S
EhH/AAAB/xEQEf8RERH/RQAA/5kzAP+rAAD/qgAA/6sAAA7/qgABM/+ZAAD/uwAB/6oAAP+q
AAH/qwAB/6oAAP+qAQH/iAAA/zMAAP8AARH/ABIA/wEAAQr/ERERO/8BAQD/ERER/xERD/8B
AAH/AQEB/xEQEf8SERH/AAEA/xIREf8iIiL/ERES/yEiIf8iIiL/ARIBCv8RERFj/wEAAf8i
IiL/EBIR/xEREv8iIiP/MwAA/yIiI/+pAAD/qgAB/6sAAP+qAAD/qgEA/6oAAP+rAAD/vAAA
/7sAAP+qAAD/qwAA/6sAAf+IAAD/VAAB/wAiAP8BABD/EhERCv8AAAEf/xEREf8yADP/dwAA
/7sAAf+pAAH/qQAA/6oAAgr/qgABCv+rAAAL/6oAAf+rAAEK/6oAACf/ZgEB/yIiI/8QEhD/
IiIh/yMiIf8jIiT/AQAA/wAAAf8BAAAO/wAAARv/AQAA/wEAAf8AAAH/AQAA/wAAAf8SERIO
/wAAARP/AQAB/wAAAf8AAQH/IyIjCv8AAAFX/yEiIv8QAAH/IiEh/wAAEf9GAAH/VgAA/3cA
AP+IAAD/qQAB/7oAAP+7AAD/qgAB/6oBAf+rAAD/qgAB/7sAAP+6AAD/ACIA/wARAP8AABL/
IiIiCv8AAAEr/wERAf8SAAD/VQAA/6oAAf+7AAD/qwAB/6oBAP+ZAAD/qwAB/6oBAQr/qgAA
I/+qAAH/qwAA/zMzAP8RERH/EhER/yIhIv8iIiP/ERERDv8AAAEK/wEAAB//AAAB/zMAAP9m
AAH/MwAA/yIAAP8AAQH/AgABIv8AAAET/yIAAf8AAAH/EBER/wEAAAr/IgAACv8QEREP/yMA
AP9VAAD/iAABCv+IAAAL/6sAAP+7AQEK/6oAAQf/qgAACv+IAABj/zQAAP8BAAH/AQEB/xER
EP8jAAH/EREQ/xEREf9mADP/mQAA/6oAAf+rAAD/mQAA/7wBAP+8AAH/uwAB/5gAAP+IAAD/
hwAA/yIBAf8RERH/AAEj/xEAAf8AACL/ERESDv8AAAEH/wEAAQr/AAABK/8iAAD/mAAA/4gA
AP92AAD/ZgAB/2YAAv8jAAH/IgAA/xEAAP8AAAEK/wEAARP/AREB/wAAAf8AABL/AAESDv8A
AAF//wAAI/8AAAH/AQAA/wAAEP8AEQD/AREA/xIAAP8iAAH/ZgAA/3cAAP+HAAD/qgAA/5kA
AP+7AQD/vAAB/2UAAP8RERH/ERES/yMiI/8iIiL/IyEh/yIiIf8zMwD/VQEB/5kAAP+8AAH/
mQAA/6oAAP+8AAH/uwAA/7wAAAr/dwAAG/8AAAH/AAAR/xEQEf8AAAH/IwAC/xAREQ7/AAAB
B/8BAAAO/wAAAT//VgAB/6sAAP+qAAD/vAAB/5oAAP+pAQH/iAAA/2YAAf9WAAH/EAAA/wAR
AP8AAAH/AQAA/wAAAf8BAAEK/wAAAQf/AAEACv8AAAEP/wEAAP8AAQD/AQABCv8AAAFD/yMi
Iv8RERH/IiMj/yMiI/8iIiH/IiIi/yIiI/9VAAD/iAAA/0UBAP8hIyL/EREQ/yMAAf8RERL/
EhIQ/xEREQr/AAABO/8BEQD/dwAA/6oAAf+qAQH/qgAA/5kAAP8iAAD/ABEB/xEREP8RERL/
ERIR/wAAAf8SERL/ERESHv8AAAEb/xIAAv+rAAD/qgAC/7wAAf+rAAH/qQABCv+qAAEf/6sA
AP+pAAD/qgAA/1UAAP9EAAD/ERER/wEAAAr/AAABB/8AACEO/wEAACf/AAAB/xEREf8AAAH/
AAEA/yMiIv8RERD/IiIi/yMjIv8iISIK/yIjIgf/EQAACv8iAAAb/xEREf8REBH/EQAA/xES
Ef8QERH/ERERCv8AAAE7/wAAEv8SAAD/qgAA/6sAAf+qAAD/mQAA/xEBAP8AACL/EREQ/xEA
AP8RERH/AQAA/wAAIv8SERIi/wAAASf/hwAA/4gAAP+qAAD/uwAA/5oAAf+qAAD/qgAB/7wA
Af+qAQAK/6oBAT//uwAA/7sAAf9mAAD/IQAA/yIiI/8jIiH/MwAy/yIjIv8jIiP/IiIi/yIi
If8RERH/EBEQ/xIREf8AEQEK/wAAAQr/AAAQC/8BAAD/ERARCv8BAAFj/xEREP8AASL/IQAA
/xEREf8RERD/IgAC/xESEf8SERH/EhES/wERAf8AABL/IAAA/0MAAP9VAQL/AAAR/xEREf8A
ACL/IgAA/wABIv8AEQD/EBEQ/xEAAP8AAAH/AAEACv8AAAEH/wABARL/AAABF/8RERH/vAAA
/7sAAP+qAQD/qwABCv+qAAAX/7sBAP+YAAD/iAAB/6oBAf+qAAAK/4gAAC//IiMj/yMjIv8A
ACP/AAAB/xEQEf8iIiT/MgAy/wEAAP8BAAH/AQAi/wAAIQr/AAABC/8AEQD/AAARCv8AAAEn
/xEREf8RERD/AAEh/wAAIv8RERL/AAAB/wEAAf8RERH/AAAiCv8REREL/xAREP8AAQAK/wAA
ASf/AAAj/wAAAf8AACH/ABEA/xAREf8REBD/ERER/wEBEf8QERES/wAAAQf/ERERDv8AAAEb
/wEAAf8REBH/ZwAA/7sAAf+rAAH/qwAACv+qAAFn/6kAAP+qAAD/qgAC/6oAAP+qAQH/uwAA
/4gAAP8hAAD/AAAR/wAAI/8AAAH/EBEQ/wAAEf8iAAD/dgAA/6oAAP93AAD/VgEA/yMAAf8A
ACH/ABEA/wEAEv8RERL/AAAR/wAAEAr/AAABCv8AASMK/wAAAQv/EhER/xEREQr/AAABB/8S
EREO/wAAAQf/AAARCv8AAAEH/wAAIQr/ERERi/8RERL/ERAQ/xERE/8AAQD/AQAC/wAAAf8i
IiP/ERER/xESEP8SEBD/IiIi/xAREP8SEBH/MwEA/2YAAf+7AAH/qgAB/6oAAP+qAQD/qgEB
/6kBAv+rAQH/qQAA/6oBAf+7AAH/qgAB/0QAAP8BIgD/AREA/wEAAP8SERL/AQAS/wAAAf92
AQAK/4gAACP/uwAA/3cAAP94AAD/ZQAA/6oAAP8REBH/IgAA/wABEQ7/AAABZ/8RERD/AQAB
/wAAAf8RERD/ERER/wAAAf8AAQD/EhER/xEREv8AAQD/AAAB/xIREf8BASP/AAAB/wAAIf8A
AQH/ERER/wEAEf8SERH/EREQ/yIiIv8jISL/ISIh/wAzMv8hIiMK/yEiIYP/IiIk/yIiIv8A
IgD/ERES/wAAI/94AAH/qQAA/7sAAf+6AAD/qQAA/6sAAf+7AQD/qwAB/6oAAf+YAAD/uwAA
/6oAAP+ZAAD/QwAA/wARAf8QERH/ERAR/xEREf8QERH/ACEA/2cAM/+ZAAD/mAAA/6oAAf+Z
AAD/mAAA/6oAARL/mQAAC/9WAQH/MwABCv8AASIL/xEREf8AABEK/xEREVP/AQEi/xIREv8R
ERL/ERER/wEANP8RERH/EBEQ/xEREv8RERH/EhAS/xAREP8PERD/ERES/yEiIv8QERH/ERIR
/yIiI/8iIiL/IyIi/xEREAr/IiIiB/8iIiEK/yEiIkv/IyIh/yIiIv+qAAL/qQAA/6oAAP+p
AAL/qQAB/7sAAP+ZAAD/qgAB/6oAAv+pAAH/qgAB/4gAAP8RERH/EBER/wAAEP8hIiIO/yIi
Ih//VQEA/4kAAP+7AAD/ugAA/6oAAf+rAAH/qgABCv+qAAAP/6kAAP+qAAD/rAAACv+IAAAH
/1UBABL/IiIiH/8BNDT/IiIi/yMjI/8RERH/AAAi/yIiIv8AADQK/yIiIhf/IiIk/yIiIf8h
ISH/AAAB/wEAAAr/AQABCv8AAAEP/xEREv8AEQD/IyIiCv8iIiIj/wAAIv8AAAH/AAEA/zIA
AP+IAQD/uwAB/5gAAP+rAAEK/7sAAAf/qgABDv+qAAAn/5gAAP8jIiP/IiIi/wAAAf8iIiH/
ERIQ/xIQEf8AAAH/ERERCv93AAAL/5oAAP+qAAAK/6oAAUP/qQAB/6sAAf+pAAD/qwEB/5kA
AP+pAAD/ugEB/6oAAP93AAH/IiIj/yMiI/8BASP/AAAh/yIiIv8RERD/EBERCv8RERIf/wAR
AP8iIiL/ISIi/yMiI/8iIiH/EREQ/wABAQr/AAABB/8AASIK/wAAEhv/AAER/wABIv8AAAH/
AAAR/wARAP8AASIK/wAAImf/ABAA/xEREv9nAAH/uwAA/5gAAP+qAQL/vAEB/6sAAv+pAAH/
qwAA/6oAAP+qAAH/uwAB/4gAAP+HAAD/EhER/yEAAf8AABH/AAAS/xIAAP8AAAH/IyIi/7wA
AP+qAAH/qwAACv+qAAAT/6sAAP+qAAD/qgAB/6kAAAr/mQAAR/93AAD/EBES/wASAv8AACH/
EREQ/wAAI/8BACP/ABIB/wARAv8AASP/AQAi/wARAP8AADP/ABIB/wARAf8AASL/AAAjDv8A
AAEX/wERAP8AABL/AAAR/wAAIf8BEgEK/wAAEif/AQEj/wARAP8BAAH/AAAB/wAAEf8AEQD/
IgAB/zMAAP+ZAAAK/6oAAQf/qQAACv+ZAAAL/7wAAf+ZAAAK/6oAAUf/iAAA/zMAM/8AASL/
ERAQ/xEREf8SERL/ERIR/xIAAP80ADP/mQAA/6oBAf+qAAH/mQAA/7sAAP+ZAAD/ugAA/6kA
AQr/dwAAR/8zAAD/ERES/wEiAP8REhL/AAAh/xERE/8RERL/AAAi/wAAM/8AEAH/ACIA/wAA
M/8AEQD/AREA/wERAv8AEQH/ABEAEv8AAAEP/xEREv8RERH/AQAQCv8AABEK/wAAIs//AAAR
/xIREf8QERH/AAAh/wAAAf8BAAH/AQAA/wAAEf9VAAD/VQAB/5kAAP+8AAH/qgAB/6oAAP+r
AQH/qwEA/6sAAf+qAAD/dwAB/xIREf8REBH/IiIi/xEREf8hIiH/ERIR/wEAAP8AARD/ERER
/4gAAP+pAAH/qgAA/4cAAP9VAAH/hwAA/xEREf8SERL/EhER/yIjIv8BABH/ERER/xESEv8S
ERH/ERER/xAREf8RERH/EBIR/xESEv8AASP/EhER/wARAf8BIgEK/wARABL/AAABD/8QEhH/
EREQ/wAAEgr/AAAiC/8AACP/AAAiCv8AASJX/xEQEf8AACP/ABEA/wABIv8AAQD/AQAR/wEh
AP8RERD/DxAR/2YBAf92AAD/qgAA/6kBAP+qAQD/qwAB/6oAAP+qAAH/RAEA/yMiIv8jISH/
EhESCv8iIyIv/xEREf8AABH/ERIS/wAiAP9mAAH/VAAA/xIREv8RERD/AQEi/xEREf8QEREK
/yIiIhf/IiEi/yIiI/8iIiT/EBES/xIREQr/ERERJ/8RERD/EhES/xAREf8REhP/ASIA/wAi
AP8AEQD/ABAC/wEAAAr/AAABG/8AASL/AAEj/wAAIf8AACL/ABEA/wABIgr/AAAiE/8AEQH/
ABEA/wAQAP8AACIK/xERESf/ACIA/wAAM/8AEQD/AAAB/xESEf8SAAD/ERER/yIAAf9nADQK
/4gAAA//uwAA/5kAAP+qAAEK/6oAACP/VQAA/yMjIv8BABH/EAEA/yIjI/8REhH/ERAR/xAR
EAr/AAAiV/8AIQD/ACMA/xEREf8REBD/EQAA/xEREP8RERH/IiEj/wEAIv8jIiP/AAAi/wEA
I/8hIiP/IgEB/yIAAP8QERH/ERIS/wAAIv8AEQD/AQAj/wAjAA7/AAABJ/8AEAH/ABEA/wER
AP8AACL/AQA1/xEREf8AACH/EhEQ/wABIgr/AAAjDv8RERE3/wAAEv8AAAH/ABEA/xIREf8A
ACL/ABEA/wAAEv8AASL/ARIA/yIhIv9FAAH/ZgAA/5kAMgr/dwAAC/94AAD/ZwAzCv8RERBz
/xIREv8AACL/AAAj/xEREf8BARL/AAAh/wABIv8RERH/AQAz/wAAI/8RERL/AQA1/xEREf8i
IyL/IiIi/wAAI/8BACP/ERES/xEREf8REhL/ERER/xEREv8SERH/AQEz/wEAI/8BACL/ADMz
/wAiAAr/AAABD/8AAQD/EBER/xEREQr/EREQU/8AEQD/AAAi/wABIv8QERH/AAEj/xEREf8Q
ERD/AAEi/wEAAP8RERH/EREQ/xEREv8QERL/EhER/xEREf8BARH/ERER/wAAI/8BEAD/ERES
Cv8AAAEH/wERAAr/ERERg/8RERD/IgAB/xEREP8RERH/ERIR/xIREv8RERH/EhES/xEQEf8A
ABD/EBER/xIREv8RERH/AQAi/xEREf8jIiL/AQEi/xEREP8TERL/IiIh/xEQEf8RERD/ERES
/xEREf8iISH/IiIi/wAAI/8RAAD/IiIi/wAAEf8BACL/ISIiDv8AAAE3/xEREv8AACL/EhER
/xEREf8AEQD/ABEB/wERAf8REBH/AQAj/xESEv8REhD/AREC/wAAIgr/AAEiF/8SEhD/AAAj
/xEREv8AACH/AAARCv8AACJH/wIRAf8AACL/AAEi/xIQEP8AACT/ERES/xISEf8RERL/ERER
/xEREP8REhD/ERER/xAREv8iIiL/IyIh/xESEv8QEREK/wARAAr/AAAiB/8REREK/wAAIgr/
EhERo/8jIiL/EBER/xEREv8REBD/IyIi/wABIv8iIiP/IiIi/wEBNP8iIiL/AAAi/wABRP8j
IiL/AAAB/wABAP8AAAH/ABEA/wAiAP8BIgD/EREQ/wIANf8AIgD/EREQ/wAAIf8BMzP/ABEA
/wAhAP8AACH/EhEQ/xIREf8AASL/ASIA/wIRAf8AEAD/ACIA/wEAM/8AEQD/AREB/wAAM/8A
IgAK/xERETP/ADMz/wEAI/8AACH/ERAP/wAAIf8RERH/IiIh/wAAI/8hIiL/IiIi/xESEf8B
ADMK/xERESf/EBES/wAAM/8QERL/ACIA/wAAIf8BASP/EhES/xIREf8BADMO/yIiIif/ISIi
/yIiIv8hIiL/ATRm/yIiI/8AMzT/AQFF/yIiIv8ANDM=' as: String) asByteArray].
|
| defaultTForm
|
| tform |
tform _ Croquet world renderer textureAt: 'default' ifAbsentPut:[
TForm fromForm: TForm defaultForm mipmap: true shrinkFit: true extension: nil.].
^ tform.
|
| fromFileNamed: fName mipmap: bMM shrinkFit: bSF extension: ext
|
| file form tform |
file _ CroquetData findTextureFileName: fName.
file ifNil:[
Transcript show: 'DEFAULT TEXTURE...Check file names!';cr.
tform _ Croquet world renderer textureAt: 'default' ifAbsentPut:[
form _ TForm defaultForm.
tform _ TForm fromForm: form mipmap: bMM shrinkFit: bSF extension: ext.
].
^ tform.
].
^Croquet world renderer textureAt: file ifAbsentPut:[
form _ Form fromFileNamed: file.
form ifNotNil:[
tform_ TForm new initialize: file form: form mipmap: bMM shrinkFit: bSF extension: ext.
] ifNil:[
Transcript show: 'DEFAULT TEXTURE...Check file names!';cr.
tform _ Croquet world renderer textureAt: 'default' ifAbsentPut:[
form _ TForm defaultForm.
tform _ TForm fromForm: form mipmap: bMM shrinkFit: bSF extension: ext.
].
].
tform.
].
|
| fromForm: baseForm mipmap: bMM shrinkFit: bSF extension: ext
|
^ self new initialize: nil form: baseForm mipmap: bMM shrinkFit: bSF extension: ext.
|