
- gets/sets if nearest scaling algorithm is being used
Type:
- boolean
- True = activate nearest scaling algorithm.
- False = don't activate nearest scaling algorithm.
- Video Texture width and height should be a power of 2.
- If the Video Texture is not a power of 2, the graphics pipeline automatically rescales the texture to a power of 2.
- Graphics pipeline doesn't always use the nearest scaling algorithm.
- 2 x 2
- 4 x 4
- 8 x 8
- 16 x 16
- 32 x 32
- 64 x 64
- 128 x 128
- 256 x 256
- 512 x 512
- etc
- And any combination. 128 x 512 is a power of 2.
- A texture of 260 x 260 will be automatically rescaled by the graphics pipeline to 512 x 512.
- A texture of 130 x 520 will be automatically rescaled by the graphics pipeline to 256 x 1024.

###################### get if nearest scaling algorithm being used
#import bge
import bge
# get current scene
scene = bge.logic.getCurrentScene()
# get list of objects in scene
objList = scene.objects
# get object named Painting
obj = objList["Painting"]
# get matID for the obj named Painting
# I named the material Canvas
matID = bge.texture.materialID(obj, "MACanvas")
# get the 1st texture on object named Painting
portrait = bge.texture.Texture(obj, matID)
# get the name of the image
# I'm using an image named Mona_Lisa.jpg
imageName = "Mona_Lisa.jpg"
# get image path
# Mona_Lisa.jpg is in same directory as saved blend
imagePath = bge.logic.expandPath("//" + imageName)
# get image as an ImageFFmpeg
image = bge.texture.ImageFFmpeg(imagePath)
# load image into a bgl buffer
image_buffer = bge.texture.imageToArray(image, 'RGB')
# get image size
image_size = image.size
# use ImageBuff as the source
portrait.source = bge.texture.ImageBuff()
# load the image from the buffer into ImageBuff
portrait.source.load(image_buffer, image_size[0], image_size[1])
# get scaling status
status = portrait.source.scale
# save as an object variable
obj["Portrait"] = portrait
# display the image
portrait.refresh(True)
###################### set if nearest scaling algorithm being used
#import bge
import bge
# get current scene
scene = bge.logic.getCurrentScene()
# get list of objects in scene
objList = scene.objects
# get object named Painting
obj = objList["Painting"]
# get matID for the obj named Painting
# I named the material Canvas
matID = bge.texture.materialID(obj, "MACanvas")
# get the 1st texture on object named Painting
portrait = bge.texture.Texture(obj, matID)
# get the name of the image
# I'm using an image named Mona_Lisa.jpg
imageName = "Mona_Lisa.jpg"
# get image path
# Mona_Lisa.jpg is in same directory as saved blend
imagePath = bge.logic.expandPath("//" + imageName)
# get image as an ImageFFmpeg
image = bge.texture.ImageFFmpeg(imagePath)
# load image into a bgl buffer
image_buffer = bge.texture.imageToArray(image, 'RGB')
# get image size
image_size = image.size
# use ImageBuff as the source
portrait.source = bge.texture.ImageBuff()
# load the image from the buffer into ImageBuff
portrait.source.load(image_buffer, image_size[0], image_size[1])
# set scaling status
portrait.source.scale = True
# save as an object variable
obj["Portrait"] = portrait
# display the image
portrait.refresh(True)