惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
Jina AI
Jina AI
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
I
InfoQ
L
LangChain Blog
The Cloudflare Blog
IT之家
IT之家
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog
A
About on SuperTechFans
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Last Week in AI
Last Week in AI
Blog — PlanetScale
Blog — PlanetScale
罗磊的独立博客
云风的 BLOG
云风的 BLOG
Microsoft Azure Blog
Microsoft Azure Blog
Engineering at Meta
Engineering at Meta
F
Fortinet All Blogs
博客园 - 聂微东
美团技术团队
博客园_首页

博客园 - 健忘猪

Skynet Pomelo Erlang Elixir 的认识 lua中得栈 Linux多线程编程(不限Linux)【转】 tolua++实现分析 cocos2dx的lua绑定 cocos2d ios 环境搭建 导出 C/C++ API 给 Lua 使用[转] C++中实现回调机制的几种方式[转] 0xcdcdcdcd ,0xdddddddd ,0xfeeefeee ,0xcccccccc ,0xabababab threading COM技术内幕(笔记) UI库阶段性进展(button在文本对齐的基础上增加文本偏移让文本位置更精准) UI库阶段性进展(完成textrender的文字align) UI库阶段性进展(完成文字列表,样式列表(样式列表可继承)) UI库阶段性进展(按钮初具雏形) 关于一个GetLevelDesc函数 的认知问题 UI库阶段性进展(把背景图元设定为Wnd基类的成员) UI库阶段性进展(增加从xml中某一结点初始化窗口功能) UI库阶段性进展
UI库阶段性进展(增强图元功能)
健忘猪 · 2012-12-11 · via 博客园 - 健忘猪

      这两天整理了下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;
};