opengles 渲染雪碧图

本文探讨了如何在项目中利用OpenGL ES高效地读取和渲染雪碧图上的特定资源。通过计算雪碧图的纹理坐标,并结合显示位置的四个坐标,实现了在图形渲染中的应用。
摘要由CSDN通过智能技术生成

一、背景
最近项目使用资源中,为了减小资源大小,将多个资源图片合并为一张图片,本文将介绍如何读取雪碧图的特定位置纹理并渲染。

二、实现

样例图片
在这里插入图片描述

  1. 计算雪碧图指定纹理坐标
std::vector<Vector2> vecTexUV;
//图片有几行数据
int lines = 2;
//图片有几列
int column = 5;
//index 显示第几个图标
GLuint LoadTextures(int index)
{
   
    GLuint uTexId = 0u;

    int32_t resID = pItem->m_resID;

    std::string path = "XXXXXXX"; //文件路径,包含文件名
    std::ifstream ifs(path);
    if (!ifs.is_open()) {
   
		return uTexId;
    }
    std::ostringstream os;
    os << ifs.rdbuf();
    std::string res = os.str();
    ifs.close();

	//TODO ImageData为自定义的一个image类,存放图片相关信息; decodeImage为自己写的文件数据解析接口(后续会在另一个文章中详述)
    ImageData image = decodeImage(res);
    //第几行(从0开始)
    int lineNumber = index / column;
    //第几个图(从0开始)
    int  lineIndex = type %
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搁浅de年华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值