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;
    };
    

      

  • 相关阅读:
    第11章 接口与内部类
    第10章 多态
    API接口设计之token、timestamp、sign具体实现
    JDK 监控和故障处理工具
    分布式id生成方案
    SQL优化
    自定义对象存入Redis
    OAuth(开放授权)
    Hystrix使用
    Session机制详解
  • 原文地址:https://www.cnblogs.com/dwjaissk/p/2812278.html
Copyright © 2011-2022 走看看