From 9efa1e0c3126a4faca3748743407d8dc3de3fc5d Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 9 Apr 2009 08:23:05 -0500 Subject: [PATCH] Don't use glTexSubImage2D unless we really have to --- basis/opengl/textures/textures.factor | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/basis/opengl/textures/textures.factor b/basis/opengl/textures/textures.factor index e13e99e10f..1900deb5b8 100755 --- a/basis/opengl/textures/textures.factor +++ b/basis/opengl/textures/textures.factor @@ -36,10 +36,12 @@ TUPLE: single-texture image dim loc texture-coords texture display-list disposed [ next-power-of-2 ] map ] unless ; -: (tex-image) ( image -- ) - [ GL_TEXTURE_2D 0 GL_RGBA ] dip - [ dim>> adjust-texture-dim first2 0 ] - [ component-order>> component-order>format f ] bi +: (tex-image) ( image bitmap -- ) + [ + [ GL_TEXTURE_2D 0 GL_RGBA ] dip + [ dim>> adjust-texture-dim first2 0 ] + [ component-order>> component-order>format ] bi + ] dip glTexImage2D ; : (tex-sub-image) ( image -- ) @@ -53,7 +55,9 @@ TUPLE: single-texture image dim loc texture-coords texture display-list disposed gen-texture [ GL_TEXTURE_BIT [ GL_TEXTURE_2D swap glBindTexture - [ (tex-image) ] [ (tex-sub-image) ] bi + non-power-of-2-textures? get + [ dup bitmap>> (tex-image) ] + [ [ f (tex-image) ] [ (tex-sub-image) ] bi ] if ] do-attribs ] keep ;