SDL中文论坛

标题: SDL_CreateTexture [打印本页]

作者: ancientcc    时间: 2016-7-6 13:57
标题: SDL_CreateTexture
本帖最后由 ancientcc 于 2016-7-6 15:25 编辑

在渲染器内创建纹理。

语法
  1. SDL_Texture* SDL_CreateTexture(SDL_Renderer* renderer, Uint32 format, int access, int w, int h)
复制代码


参数
renderer纹理要归属的渲染器
format像素格式,SDL_PixelFormatenum中的枚举值
access访问方法,SDL_TextureAccess中的枚举值。更多见注释中“支持的access值”
w像素单位的纹理宽度
h像素单位的纹理高度


返回值
如果成功创建,返回指向该纹理的指针,否则NULL。可能失败的原因:1)没有激活的上下文;2)不支持的像素格式;3)指定的宽度或高度超出范围。可调用SDL_GetError获得更多错误信息。

范例
  1. <Example>
复制代码


注释
支持的access值
SDL_TEXTUREACCESS_STATIC很少修改,不能上锁。修改指的是调用SDL_UpdateTexture修改像素数据
SDL_TEXTUREACCESS_STREAMING经常修改,能上锁。修改概念等同SDL_TEXTUREACCESS_STATIC
SDL_TEXTUREACCESS_TARGET可作为复制时的目标纹理。复制操作指SDL_RenderCopy、SDL_RenderCopyEx


缩放方式(scaleMode)
调用该函数前,可设置SDL_HINT_RENDER_SCALE_QUALITY选择希望的缩放方式。以下表格描述了选择到某个值时的条件。
使用它的条件
GL_NEAREST没有设置SDL_HINT_RENDER_SCALE_QUALITY,或空,或是nearest
GL_LINEAR除以上之外


纹理链表
渲染器用开环双向链表(SDL_Texture* textures)来存储内中纹理。纹理一旦创建,就会被加入链表,删除则从链表中移除。新建纹理被加到链表头部。

执行逻辑


相关类、函数
SDL_CreateTextureFromSurface
SDL_DestroyTexture
SDL_QueryTexture
SDL_UpdateTexture




欢迎光临 SDL中文论坛 (http://www.libsdl.cn/bbs/) Powered by Discuz! X3.3