Thanks for all the replies.
jfk: I dont's actually own a radeon myself, but I'm sure all the testers were using updated drivers.
Sybixsus: Yeah I think it must be some sort of texture weirdness. I do actually own FonText but it doesn't do everthing I need.
Dylan McCall: Nope just a standard 800/600, could you possibly test the code below, see if it works on your radeon.
Paolo: I only used texture flags for alpha and clamping the u/v's
displaywidth=640 : displayheight=480
displaydepth=0
Global texturewid=256, texturehgt=256, textureflags=1
;------------------
Graphics3D displaywidth,displayheight,displaydepth
cam=CreateCamera()
CameraRange cam,.1,1000
pixie=LoadPixie(cam)
While Not KeyHit(1)
PositionEntity pixie,MouseX(),MouseY(),0
RenderWorld
UpdateWorld
TurnEntity cam,1,2,0 ;test texel drift
Flip
Wend
End
Function LoadPixie(camera)
texture=CreateTexture(texturewid,texturehgt,textureflags)
width=TextureWidth(texture)
height=TextureHeight(texture)
SetBuffer(TextureBuffer(texture))
Color 0,0,150 : Rect 0,0,256,256,1
Color 255,255,255 : Rect 0,0,128,128,1 : Rect 128,128,255,255,1
SetBuffer(BackBuffer())
viewwidth=GraphicsWidth()
viewheight=GraphicsHeight()
; find existing pixiespace parented to camera
magic=0
n=CountChildren(camera)
For i=1 To n
If EntityName(GetChild(camera,i))="pixiespace"
magic=GetChild(GetChild(camera,i),1)
EndIf
Next
If magic=0
magic=CreatePivot(camera)
NameEntity(magic,"pixiespace")
aspect#=Float(viewheight)/viewwidth
PositionEntity magic,-1,aspect,1
scale#=2.0/viewwidth
ScaleEntity magic,scale,-scale,-scale
magic=CreatePivot(magic)
PositionEntity magic,-.5,-.5,0
EndIf
; create sprite from texture as child of magic overlay
sprite=CreateSprite()
EntityParent sprite,magic ;cludge for blitz bug in createsprite(parent)
brush=CreateBrush()
BrushFX brush,1
BrushTexture brush,texture
PaintEntity sprite,brush
FreeBrush brush
SpriteViewMode sprite,2
scale#=1.0/viewwidth
ScaleSprite sprite,width*scale,height*scale
Return sprite
End Function