当前位置: 首页>>代码示例>>Python>>正文


Python Texture.loadSurface方法代码示例

本文整理汇总了Python中Texture.Texture.loadSurface方法的典型用法代码示例。如果您正苦于以下问题:Python Texture.loadSurface方法的具体用法?Python Texture.loadSurface怎么用?Python Texture.loadSurface使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Texture.Texture的用法示例。


在下文中一共展示了Texture.loadSurface方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: cacheGlyph

# 需要导入模块: from Texture import Texture [as 别名]
# 或者: from Texture.Texture import loadSurface [as 别名]
  def cacheGlyph(self, ch):
    """
    Add character and size to glyph caches

    @param ch: Character
    @return:   Glyph instance
    """
    # Font size
    self.glyphSizeCache[ch] = self.font.size(ch)
    # Font texture
    s = self.font.render(ch, True, (255, 255, 255))
    t = Texture()
    t.setFilter(GL_LINEAR, GL_LINEAR)
    t.setRepeat(GL_CLAMP, GL_CLAMP)
    t.loadSurface(s, alphaChannel = True)
    del s
    self.glyphCache[ch] = t
    return t
开发者ID:Gamer125,项目名称:fofix,代码行数:20,代码来源:Font.py

示例2: getGlyph

# 需要导入模块: from Texture import Texture [as 别名]
# 或者: from Texture.Texture import loadSurface [as 别名]
  def getGlyph(self, ch):
    """
    Get the L{Texture} for a given character.

    @param ch:    Character
    @return:      L{Texture} instance
    """
    try:
      return self.glyphCache[ch]
    except KeyError:
      s = self.font.render(ch, True, (255, 255, 255))

      """
      # Draw outlines
      import Image, ImageFilter
      srcImg = Image.fromstring("RGBA", s.get_size(), pygame.image.tostring(s, "RGBA"))
      img    = Image.fromstring("RGBA", s.get_size(), pygame.image.tostring(s, "RGBA"))
      for y in xrange(img.size[1]):
        for x in xrange(img.size[0]):
          a = 0
          ns = 3
          n = 0
          for ny in range(max(0, y - ns), min(img.size[1], y + ns)):
            for nx in range(max(0, x - ns), min(img.size[0], x + ns)):
              a += srcImg.getpixel((nx, ny))[3]
              n += 1
          if a and srcImg.getpixel((x, y))[3] == 0:
            img.putpixel((x, y), (0, 0, 0, a / n))
      s = pygame.image.fromstring(img.tostring(), s.get_size(), "RGBA")
      """
      
      t = Texture()
      t.setFilter(GL_LINEAR, GL_LINEAR)
      t.setRepeat(GL_CLAMP, GL_CLAMP)
      t.loadSurface(s, alphaChannel = True)
      del s
      self.glyphCache[ch] = t
      return t
开发者ID:broccoliftw,项目名称:workingfofwindows8,代码行数:40,代码来源:Font.py

示例3: render

# 需要导入模块: from Texture import Texture [as 别名]
# 或者: from Texture.Texture import loadSurface [as 别名]
  def render(self, text, pos = (0, 0), rotate = 0, scale = DEFAULT_SCALE, shadowoffset = (.0022, .0005), align = LEFT, new = False):
    """
    Draw some text.

    @param text:      Text to draw
    @param pos:       Text coordinate tuple (x, y)
    @param rotate:    Angle to rotate text, in degrees
    @param scale:     Scale factor
    """
    # deufeufeu : new drawing relaying only on pygame.font.render
    #           : I know me miss special unicodes characters, but the gain
    #           : is really important.
    # evilynux : Use arrays to increase performance
    def drawSquare(w,h,tw,th):
        self.square_prim[1,0] = self.square_prim[3,0] = w
        self.square_prim[2,1] = self.square_prim[3,1] = h
        self.square_tex[0,1] = self.square_tex[1,1] = th
        self.square_tex[1,0] = self.square_tex[3,0] = tw
        cmglDrawArrays(GL_TRIANGLE_STRIP, vertices=self.square_prim, texcoords=self.square_tex)

    if not text:
        return

    try:
        t,w,h = self.stringsCache.get(text)
    except KeyError:
        s = self.font.render(text, True, (255,255,255))
        t = Texture()
        t.setFilter(GL_LINEAR, GL_LINEAR)
        t.setRepeat(GL_CLAMP, GL_CLAMP)
        t.loadSurface(s, alphaChannel = True)
        del s
        w, h = self.font.size(text)
        self.stringsCache.add(text,(t,w,h))

    x, y = pos
    scale *= self.scale
    w, h = w*scale*self.aspectRatioFactor, h*scale
    if align == CENTER: #we have already done all the calculating. Why not add this? - akedrou
      x -= (w/2)
    elif align == RIGHT:
      x -= w
    y -= (h/2)
    tw,th = t.size
    glEnable(GL_TEXTURE_2D)
    with cmglPushedMatrix():
      if rotate:
        if not isinstance(rotate, tuple):
          glRotatef(rotate, 0, 0, 1.0)
        else:
          glRotatef(0, *rotate)
      glTranslatef(x,y,0)
      t.bind()
      if self.outline:
        with cmglPushedAttrib(GL_CURRENT_BIT):
          glColor4f(0, 0, 0, .25 * glGetDoublev(GL_CURRENT_COLOR)[3])

          blur = 2 * DEFAULT_SCALE
          for offset in [(-.7, -.7), (0, -1), (.7, -.7), (-1, 0),
                         (1, 0), (-.7, .7), (0, 1), (.7, .7)]:
            with cmglPushedMatrix():
              glTranslatef(blur * offset[0], blur * offset[1], 0)
              drawSquare(w,h,tw,th)

      if self.shadow:
        with cmglPushedAttrib(GL_CURRENT_BIT):
          glColor4f(0, 0, 0, 1)
          with cmglPushedMatrix():
            glTranslatef(shadowoffset[0], shadowoffset[1], 0)
            drawSquare(w,h,tw,th)

      drawSquare(w,h,tw,th)

    glDisable(GL_TEXTURE_2D)
开发者ID:upgradeadvice,项目名称:fofix-grisly-virtualenv,代码行数:76,代码来源:Font.py

示例4: render

# 需要导入模块: from Texture import Texture [as 别名]
# 或者: from Texture.Texture import loadSurface [as 别名]
  def render(self, text, pos = (0, 0), direction = (1, 0), scale = DEFAULT_SCALE, shadowoffset = (.0022, .0005)):
    """
    Draw some text.

    @param text:      Text to draw
    @param pos:       Text coordinate tuple (x, y)
    @param direction: Text direction vector (x, y, z)
    @param scale:     Scale factor
    """
    # deufeufeu : new drawing relaying only on pygame.font.render
    #           : I know me miss special unicodes characters, but the gain
    #           : is really important.
    # evilynux : Use arrays to increase performance
    def drawSquare(w,h,tw,th):
        self.square_prim[1,0] = self.square_prim[3,0] = w
        self.square_prim[2,1] = self.square_prim[3,1] = h
        self.square_tex[0,1] = self.square_tex[1,1] = th
        self.square_tex[1,0] = self.square_tex[3,0] = tw
        glEnableClientState(GL_VERTEX_ARRAY)
        glEnableClientState(GL_TEXTURE_COORD_ARRAY);
        glVertexPointerf(self.square_prim)
        glTexCoordPointerf(self.square_tex)
        glDrawArrays(GL_TRIANGLE_STRIP, 0, self.square_prim.shape[0])
        glDisableClientState(GL_VERTEX_ARRAY)
        glDisableClientState(GL_TEXTURE_COORD_ARRAY);
 
    if not text:
        return

    try:
        t,w,h = self.stringsCache.get(text)
    except KeyError:
        s = self.font.render(text, True, (255,255,255))
        t = Texture()
        t.setFilter(GL_LINEAR, GL_LINEAR)
        t.setRepeat(GL_CLAMP, GL_CLAMP)
        t.loadSurface(s, alphaChannel = True)
        del s
        w, h = self.font.size(text)
        self.stringsCache.add(text,(t,w,h))
     
    x, y = pos
    scale *= self.scale
    w, h = w*scale, h*scale
    tw,th = t.size
    glEnable(GL_TEXTURE_2D)
    glPushMatrix()
    glTranslatef(x,y,0)
    t.bind()
    if self.outline:
        glPushAttrib(GL_CURRENT_BIT)
        glPushMatrix()
        glColor4f(0, 0, 0, .25 * glGetDoublev(GL_CURRENT_COLOR)[3])

        blur = 2 * DEFAULT_SCALE
        for offset in [(-.7, -.7), (0, -1), (.7, -.7), (-1, 0), 
                       (1, 0), (-.7, .7), (0, 1), (.7, .7)]:
            glPushMatrix()
            glTranslatef(blur * offset[0], blur * offset[1], 0)
            drawSquare(w,h,tw,th)
            glPopMatrix()
        glPopMatrix()
        glPopAttrib()

    if self.shadow:
        glPushAttrib(GL_CURRENT_BIT)
        glPushMatrix()
        glColor4f(0, 0, 0, 1)
        glTranslatef(shadowoffset[0], shadowoffset[1], 0)
        drawSquare(w,h,tw,th)
        glPopMatrix()
        glPopAttrib()

    drawSquare(w,h,tw,th)
    glPopMatrix()

    glDisable(GL_TEXTURE_2D)
    return
开发者ID:Gamer125,项目名称:fofix,代码行数:80,代码来源:Font.py

示例5: render

# 需要导入模块: from Texture import Texture [as 别名]
# 或者: from Texture.Texture import loadSurface [as 别名]
  def render(self, text, pos = (0, 0), direction = (1, 0), scale = DEFAULT_SCALE):
    """
    Draw some text.

    @param text:      Text to draw
    @param pos:       Text coordinate tuple (x, y)
    @param direction: Text direction vector (x, y, z)
    @param scale:     Scale factor
    """
    # deufeufeu : new drawing relaying only on pygame.font.render
    #           : I know me miss special unicodes characters, but the gain
    #           : is really important.
    def drawSquare(w,h,tw,th):
        glBegin(GL_TRIANGLE_STRIP)
        glTexCoord2f(0.0,th)
        glVertex2f(0,0)
        glTexCoord2f(tw,th)
        glVertex2f(w,0)
        glTexCoord2f(0.0,0.0)
        glVertex2f(0,h)
        glTexCoord2f(tw,0.0)
        glVertex2f(w,h)
        glEnd()
 
    if not text:
        return

    try:
        t,w,h = self.stringsCache.get(text)
    except KeyError:
        s = self.font.render(text, True, (255,255,255))
        t = Texture()
        t.setFilter(GL_LINEAR, GL_LINEAR)
        t.setRepeat(GL_CLAMP, GL_CLAMP)
        t.loadSurface(s, alphaChannel = True)
        del s
        w, h = self.font.size(text)
        self.stringsCache.add(text,(t,w,h))
     
    x, y = pos
    scale *= self.scale
    w, h = w*scale, h*scale
    tw,th = t.size
    glEnable(GL_TEXTURE_2D)
    glPushMatrix()
    glTranslatef(x,y,0)
    t.bind()
    if self.outline:
        glPushAttrib(GL_CURRENT_BIT)
        glPushMatrix()
        glColor4f(0, 0, 0, .25 * glGetDoublev(GL_CURRENT_COLOR)[3])

        blur = 2 * DEFAULT_SCALE
        for offset in [(-.7, -.7), (0, -1), (.7, -.7), (-1, 0), 
                       (1, 0), (-.7, .7), (0, 1), (.7, .7)]:
            glPushMatrix()
            glTranslatef(blur * offset[0], blur * offset[1], 0)
            drawSquare(w,h,tw,th)
            glPopMatrix()
        glPopMatrix()
        glPopAttrib()

    if self.shadow:
        glPushAttrib(GL_CURRENT_BIT)
        glPushMatrix()
        glColor4f(0, 0, 0, 1)
        glTranslatef(.0022, .0005, 0)
        drawSquare(w,h,tw,th)
        glPopMatrix()
        glPopAttrib()

    drawSquare(w,h,tw,th)
    glPopMatrix()

    glDisable(GL_TEXTURE_2D)
    return
开发者ID:Gamer125,项目名称:fofix,代码行数:78,代码来源:Font.py


注:本文中的Texture.Texture.loadSurface方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。