mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-19 14:39:18 +02:00
use sized gl formats, fix memory error
This commit is contained in:
@@ -336,7 +336,7 @@ int TSubModel::Load( cParser &parser, TModel3d *Model, /*int Pos,*/ bool dynamic
|
||||
else
|
||||
iFlags |= 0x10;
|
||||
|
||||
if (m_material != null_handle)
|
||||
if (m_material > 0)
|
||||
{
|
||||
opengl_material &mat = GfxRenderer.Material(m_material);
|
||||
|
||||
@@ -1697,7 +1697,7 @@ void TSubModel::BinInit(TSubModel *s, float4x4 *m, std::vector<std::string> *t,
|
||||
iFlags |= 0x10; // opaque
|
||||
}
|
||||
|
||||
if (m_material != null_handle)
|
||||
if (m_material > 0)
|
||||
{
|
||||
opengl_material &mat = GfxRenderer.Material(m_material);
|
||||
|
||||
|
||||
60
Texture.cpp
60
Texture.cpp
@@ -641,12 +641,12 @@ std::unordered_map<GLint, int> opengl_texture::precompressed_formats =
|
||||
|
||||
std::unordered_map<GLint, GLint> opengl_texture::drivercompressed_formats =
|
||||
{
|
||||
{ GL_SRGB_ALPHA, GL_COMPRESSED_SRGB_ALPHA },
|
||||
{ GL_SRGB, GL_COMPRESSED_SRGB },
|
||||
{ GL_RGBA, GL_COMPRESSED_RGBA },
|
||||
{ GL_RGB, GL_COMPRESSED_RGB },
|
||||
{ GL_RG, GL_COMPRESSED_RG },
|
||||
{ GL_RED, GL_COMPRESSED_RED },
|
||||
{ GL_SRGB8_ALPHA8, GL_COMPRESSED_SRGB_ALPHA },
|
||||
{ GL_SRGB8, GL_COMPRESSED_SRGB },
|
||||
{ GL_RGBA8, GL_COMPRESSED_RGBA },
|
||||
{ GL_RGB8, GL_COMPRESSED_RGB },
|
||||
{ GL_RG8, GL_COMPRESSED_RG },
|
||||
{ GL_R8, GL_COMPRESSED_RED },
|
||||
};
|
||||
|
||||
std::unordered_map<GLint, std::unordered_map<GLint, GLint>> opengl_texture::mapping =
|
||||
@@ -670,30 +670,30 @@ std::unordered_map<GLint, std::unordered_map<GLint, GLint>> opengl_texture::mapp
|
||||
{ GL_RGB, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT },
|
||||
{ GL_RG, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT },
|
||||
{ GL_RED, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT } } },
|
||||
{ GL_RGBA, { { GL_SRGB_ALPHA, GL_SRGB_ALPHA },
|
||||
{ GL_SRGB, GL_SRGB },
|
||||
{ GL_RGBA, GL_RGBA },
|
||||
{ GL_RGB, GL_RGB },
|
||||
{ GL_RG, GL_RG },
|
||||
{ GL_RED, GL_RED } } },
|
||||
{ GL_RGB, { { GL_SRGB_ALPHA, GL_SRGB }, // bad
|
||||
{ GL_SRGB, GL_SRGB },
|
||||
{ GL_RGBA, GL_RGB }, // bad
|
||||
{ GL_RGB, GL_RGB },
|
||||
{ GL_RG, GL_RG },
|
||||
{ GL_RED, GL_RED } } },
|
||||
{ GL_RG, { { GL_SRGB_ALPHA, GL_SRGB }, // bad
|
||||
{ GL_SRGB, GL_SRGB }, // bad
|
||||
{ GL_RGBA, GL_RG }, // bad
|
||||
{ GL_RGB, GL_RG }, // bad
|
||||
{ GL_RG, GL_RG },
|
||||
{ GL_RED, GL_RED } } },
|
||||
{ GL_RED, { { GL_SRGB_ALPHA, GL_SRGB }, // bad
|
||||
{ GL_SRGB, GL_SRGB }, // bad
|
||||
{ GL_RGBA, GL_RED }, // bad
|
||||
{ GL_RGB, GL_RED }, // bad
|
||||
{ GL_RG, GL_RED }, // bad
|
||||
{ GL_RED, GL_RED } } },
|
||||
{ GL_RGBA, { { GL_SRGB_ALPHA, GL_SRGB8_ALPHA8 },
|
||||
{ GL_SRGB, GL_SRGB8 },
|
||||
{ GL_RGBA, GL_RGBA8 },
|
||||
{ GL_RGB, GL_RGB8 },
|
||||
{ GL_RG, GL_RG8 },
|
||||
{ GL_RED, GL_R8 } } },
|
||||
{ GL_RGB, { { GL_SRGB_ALPHA, GL_SRGB8 }, // bad
|
||||
{ GL_SRGB, GL_SRGB8 },
|
||||
{ GL_RGBA, GL_RGB8 }, // bad
|
||||
{ GL_RGB, GL_RGB8 },
|
||||
{ GL_RG, GL_RG8 },
|
||||
{ GL_RED, GL_R8 } } },
|
||||
{ GL_RG, { { GL_SRGB_ALPHA, GL_SRGB8 }, // bad
|
||||
{ GL_SRGB, GL_SRGB8 }, // bad
|
||||
{ GL_RGBA, GL_RG8 }, // bad
|
||||
{ GL_RGB, GL_RG8 }, // bad
|
||||
{ GL_RG, GL_RG8 },
|
||||
{ GL_RED, GL_R8 } } },
|
||||
{ GL_RED, { { GL_SRGB_ALPHA, GL_SRGB8 }, // bad
|
||||
{ GL_SRGB, GL_SRGB8 }, // bad
|
||||
{ GL_RGBA, GL_R8 }, // bad
|
||||
{ GL_RGB, GL_R8 }, // bad
|
||||
{ GL_RG, GL_R8 }, // bad
|
||||
{ GL_RED, GL_R8 } } },
|
||||
};
|
||||
|
||||
void opengl_texture::set_components_hint(GLint hint)
|
||||
|
||||
11
renderer.cpp
11
renderer.cpp
@@ -1954,7 +1954,6 @@ void opengl_renderer::Render(TSubModel *Submodel)
|
||||
// specular strength in legacy models is set uniformly to 150, 150, 150 so we scale it down for opaque elements
|
||||
}
|
||||
|
||||
model_ubs.emission = 0;
|
||||
// ...luminance
|
||||
if (Global.fLuminance < Submodel->fLight)
|
||||
{
|
||||
@@ -1967,6 +1966,8 @@ void opengl_renderer::Render(TSubModel *Submodel)
|
||||
|
||||
m_geometry.draw(Submodel->m_geometry);
|
||||
|
||||
model_ubs.emission = 0.0f;
|
||||
|
||||
#ifdef EU07_USE_OPTIMIZED_NORMALIZATION
|
||||
switch (Submodel->m_normalizenormals)
|
||||
{
|
||||
@@ -2080,10 +2081,7 @@ void opengl_renderer::Render(TSubModel *Submodel)
|
||||
m_geometry.draw(Submodel->m_geometry);
|
||||
|
||||
// post-draw reset
|
||||
// re-enable shadows
|
||||
/*
|
||||
setup_shadow_color( m_shadowcolor );
|
||||
*/
|
||||
model_ubs.emission = 0.0f;
|
||||
|
||||
glDisable(GL_BLEND);
|
||||
|
||||
@@ -2792,7 +2790,6 @@ void opengl_renderer::Render_Alpha(TSubModel *Submodel)
|
||||
}
|
||||
// ...luminance
|
||||
|
||||
model_ubs.emission = 0.0f;
|
||||
if (Global.fLuminance < Submodel->fLight)
|
||||
{
|
||||
model_ubs.emission = Submodel->f4Emision.a;
|
||||
@@ -2803,6 +2800,8 @@ void opengl_renderer::Render_Alpha(TSubModel *Submodel)
|
||||
model_ubo->update(model_ubs);
|
||||
m_geometry.draw(Submodel->m_geometry);
|
||||
|
||||
model_ubs.emission = 0.0f;
|
||||
|
||||
#ifdef EU07_USE_OPTIMIZED_NORMALIZATION
|
||||
switch (Submodel->m_normalizenormals)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user