2021-08-22 11:38:28 +00:00
|
|
|
#include <inttypes.h>
|
|
|
|
|
2022-07-24 23:22:41 +00:00
|
|
|
#include "../profiler/src/imgui/imgui_impl_opengl3_loader.h"
|
2019-06-06 20:07:56 +00:00
|
|
|
#include "TracyTexture.hpp"
|
|
|
|
|
2019-06-27 15:16:23 +00:00
|
|
|
#ifndef COMPRESSED_RGB_S3TC_DXT1_EXT
|
|
|
|
# define COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
|
|
|
|
#endif
|
|
|
|
|
2019-06-06 20:07:56 +00:00
|
|
|
namespace tracy
|
|
|
|
{
|
|
|
|
|
|
|
|
void* MakeTexture()
|
|
|
|
{
|
|
|
|
GLuint tex;
|
|
|
|
glGenTextures( 1, &tex );
|
|
|
|
glBindTexture( GL_TEXTURE_2D, tex );
|
2020-07-29 11:31:26 +00:00
|
|
|
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
|
|
|
|
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
|
2020-08-13 16:16:10 +00:00
|
|
|
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
|
|
|
|
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
|
2019-06-06 23:03:28 +00:00
|
|
|
return (void*)(intptr_t)tex;
|
2019-06-06 20:07:56 +00:00
|
|
|
}
|
|
|
|
|
2021-11-18 21:46:59 +00:00
|
|
|
void FreeTexture( void* _tex, void(*runOnMainThread)(std::function<void()>, bool) )
|
2019-06-06 20:07:56 +00:00
|
|
|
{
|
2019-06-06 23:03:28 +00:00
|
|
|
auto tex = (GLuint)(intptr_t)_tex;
|
2021-11-18 21:46:59 +00:00
|
|
|
runOnMainThread( [tex] { glDeleteTextures( 1, &tex ); }, false );
|
2019-06-06 20:07:56 +00:00
|
|
|
}
|
|
|
|
|
2019-08-15 14:29:50 +00:00
|
|
|
void UpdateTexture( void* _tex, const char* data, int w, int h )
|
2019-06-06 20:07:56 +00:00
|
|
|
{
|
2019-06-06 23:03:28 +00:00
|
|
|
auto tex = (GLuint)(intptr_t)_tex;
|
2019-06-06 20:07:56 +00:00
|
|
|
glBindTexture( GL_TEXTURE_2D, tex );
|
2019-08-15 14:29:50 +00:00
|
|
|
glCompressedTexImage2D( GL_TEXTURE_2D, 0, COMPRESSED_RGB_S3TC_DXT1_EXT, w, h, 0, w * h / 2, data );
|
2019-06-06 20:07:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|