zoukankan      html  css  js  c++  java
  • UI库阶段性进展(增强图元功能)

          这两天整理了下texture图元的功能,发现在作为背景绘制的时候,在ui的继承体系中有着至关重要的作用:

           在wnd基类中,背景既可以是纯色的,也可以是纹理填充的,纹理作为背景的还需要支持单张图片或者多态图片又或者九宫格的背景再或者是多态的九宫格,另外纯色或者纹理的背景都还可以增加diffuse;

           时间原因,今天就先将texture实现到可以支持单张,多态,九宫格,以及多态的九宫格...

    class IRenderTexture
    {
    public:
    	/*
    	*@brief 通过文件名来获取纹理
    	*@param LPCTSTR pszFile 纹理的文件名 内部是从texture manager中的缓存中获取,如果没有texturemanager会自动加载并缓存起来
    	*/
    	virtual BOOL LoadTextureFromFile(LPCTSTR pszFile) = 0;
    	/*
    	*@brief 获取纹理的长宽
    	*/
    	virtual VOID GetTextureRealSize(SIZE &size) = 0;
    	/*
    	*@brief 通过指定相对原始图片尺寸的左上角和右下角来设置纹理坐标 (一般用于单一状态的九宫格图片设置9个格子的纹理坐标)
    	*@param LPPOINT ptLT 选择纹理区域的左上角坐标
    	*@param LPPOINT ptRB 选择纹理区域的右下角坐标
    	*/
    	virtual VOID SetTextureUVByAnchor(LPPOINT ptLT, LPPOINT ptRB) = 0;
    
    	/*
    	*@brief 通过比例来设定纹理坐标(一般用于多个状态图片设置纹理坐标)
    	*@param UINT uNumerator 选取的纹理是划分后的第几份
    	*@param UINT uDenominator 纹理划分成几份(必须是横向划分)
    	*/
    	virtual VOID SetTextureUVByRatio( UINT uNumerator, UINT uDenominator ) = 0;
    
    	/*
    	*@brief 通过比例和相对单一态的图片尺寸的左上角和右下角来设定纹理坐标(一般用于多个状态图片设置9个格子的纹理坐标)
    	*@param UINT uNumerator 选取的纹理是划分后的第几份
    	*@param UINT uDenominator 纹理划分成几份(必须是横向划分)
    	*@param LPPOINT ptLT 选择纹理区域的左上角坐标
    	*@param LPPOINT ptRB 选择纹理区域的右下角坐标
    	*/
    	virtual VOID SetTextureUVByRatio_Anchor(UINT uNumerator, UINT uDenominator, LPPOINT ptLT, LPPOINT ptRB) = 0;
    };
    

      

  • 相关阅读:
    jquery开发之第一个程序
    结构体大小求值
    SpringMVC 理论与有用技术(一) 简单、有用、易懂的几个实例
    北极的夜空
    Assignment (HDU 2853 最大权匹配KM)
    让linux history命令显示命令的运行时间、在哪个机器运行的这个命令
    [0day]基础工具学习
    Matlab adaptive quadrature
    计蒜之道 初赛 第三场 题解 Manacher o(n)求最长公共回文串 线段树
    辛星跟您解析在CSS面包屑中三角形的定位问题
  • 原文地址:https://www.cnblogs.com/dwjaissk/p/2812278.html
Copyright © 2011-2022 走看看