mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 08:09:19 +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
|
else
|
||||||
iFlags |= 0x10;
|
iFlags |= 0x10;
|
||||||
|
|
||||||
if (m_material != null_handle)
|
if (m_material > 0)
|
||||||
{
|
{
|
||||||
opengl_material &mat = GfxRenderer.Material(m_material);
|
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
|
iFlags |= 0x10; // opaque
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_material != null_handle)
|
if (m_material > 0)
|
||||||
{
|
{
|
||||||
opengl_material &mat = GfxRenderer.Material(m_material);
|
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 =
|
std::unordered_map<GLint, GLint> opengl_texture::drivercompressed_formats =
|
||||||
{
|
{
|
||||||
{ GL_SRGB_ALPHA, GL_COMPRESSED_SRGB_ALPHA },
|
{ GL_SRGB8_ALPHA8, GL_COMPRESSED_SRGB_ALPHA },
|
||||||
{ GL_SRGB, GL_COMPRESSED_SRGB },
|
{ GL_SRGB8, GL_COMPRESSED_SRGB },
|
||||||
{ GL_RGBA, GL_COMPRESSED_RGBA },
|
{ GL_RGBA8, GL_COMPRESSED_RGBA },
|
||||||
{ GL_RGB, GL_COMPRESSED_RGB },
|
{ GL_RGB8, GL_COMPRESSED_RGB },
|
||||||
{ GL_RG, GL_COMPRESSED_RG },
|
{ GL_RG8, GL_COMPRESSED_RG },
|
||||||
{ GL_RED, GL_COMPRESSED_RED },
|
{ GL_R8, GL_COMPRESSED_RED },
|
||||||
};
|
};
|
||||||
|
|
||||||
std::unordered_map<GLint, std::unordered_map<GLint, GLint>> opengl_texture::mapping =
|
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_RGB, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT },
|
||||||
{ GL_RG, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT },
|
{ GL_RG, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT },
|
||||||
{ GL_RED, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT } } },
|
{ GL_RED, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT } } },
|
||||||
{ GL_RGBA, { { GL_SRGB_ALPHA, GL_SRGB_ALPHA },
|
{ GL_RGBA, { { GL_SRGB_ALPHA, GL_SRGB8_ALPHA8 },
|
||||||
{ GL_SRGB, GL_SRGB },
|
{ GL_SRGB, GL_SRGB8 },
|
||||||
{ GL_RGBA, GL_RGBA },
|
{ GL_RGBA, GL_RGBA8 },
|
||||||
{ GL_RGB, GL_RGB },
|
{ GL_RGB, GL_RGB8 },
|
||||||
{ GL_RG, GL_RG },
|
{ GL_RG, GL_RG8 },
|
||||||
{ GL_RED, GL_RED } } },
|
{ GL_RED, GL_R8 } } },
|
||||||
{ GL_RGB, { { GL_SRGB_ALPHA, GL_SRGB }, // bad
|
{ GL_RGB, { { GL_SRGB_ALPHA, GL_SRGB8 }, // bad
|
||||||
{ GL_SRGB, GL_SRGB },
|
{ GL_SRGB, GL_SRGB8 },
|
||||||
{ GL_RGBA, GL_RGB }, // bad
|
{ GL_RGBA, GL_RGB8 }, // bad
|
||||||
{ GL_RGB, GL_RGB },
|
{ GL_RGB, GL_RGB8 },
|
||||||
{ GL_RG, GL_RG },
|
{ GL_RG, GL_RG8 },
|
||||||
{ GL_RED, GL_RED } } },
|
{ GL_RED, GL_R8 } } },
|
||||||
{ GL_RG, { { GL_SRGB_ALPHA, GL_SRGB }, // bad
|
{ GL_RG, { { GL_SRGB_ALPHA, GL_SRGB8 }, // bad
|
||||||
{ GL_SRGB, GL_SRGB }, // bad
|
{ GL_SRGB, GL_SRGB8 }, // bad
|
||||||
{ GL_RGBA, GL_RG }, // bad
|
{ GL_RGBA, GL_RG8 }, // bad
|
||||||
{ GL_RGB, GL_RG }, // bad
|
{ GL_RGB, GL_RG8 }, // bad
|
||||||
{ GL_RG, GL_RG },
|
{ GL_RG, GL_RG8 },
|
||||||
{ GL_RED, GL_RED } } },
|
{ GL_RED, GL_R8 } } },
|
||||||
{ GL_RED, { { GL_SRGB_ALPHA, GL_SRGB }, // bad
|
{ GL_RED, { { GL_SRGB_ALPHA, GL_SRGB8 }, // bad
|
||||||
{ GL_SRGB, GL_SRGB }, // bad
|
{ GL_SRGB, GL_SRGB8 }, // bad
|
||||||
{ GL_RGBA, GL_RED }, // bad
|
{ GL_RGBA, GL_R8 }, // bad
|
||||||
{ GL_RGB, GL_RED }, // bad
|
{ GL_RGB, GL_R8 }, // bad
|
||||||
{ GL_RG, GL_RED }, // bad
|
{ GL_RG, GL_R8 }, // bad
|
||||||
{ GL_RED, GL_RED } } },
|
{ GL_RED, GL_R8 } } },
|
||||||
};
|
};
|
||||||
|
|
||||||
void opengl_texture::set_components_hint(GLint hint)
|
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
|
// 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
|
// ...luminance
|
||||||
if (Global.fLuminance < Submodel->fLight)
|
if (Global.fLuminance < Submodel->fLight)
|
||||||
{
|
{
|
||||||
@@ -1967,6 +1966,8 @@ void opengl_renderer::Render(TSubModel *Submodel)
|
|||||||
|
|
||||||
m_geometry.draw(Submodel->m_geometry);
|
m_geometry.draw(Submodel->m_geometry);
|
||||||
|
|
||||||
|
model_ubs.emission = 0.0f;
|
||||||
|
|
||||||
#ifdef EU07_USE_OPTIMIZED_NORMALIZATION
|
#ifdef EU07_USE_OPTIMIZED_NORMALIZATION
|
||||||
switch (Submodel->m_normalizenormals)
|
switch (Submodel->m_normalizenormals)
|
||||||
{
|
{
|
||||||
@@ -2080,10 +2081,7 @@ void opengl_renderer::Render(TSubModel *Submodel)
|
|||||||
m_geometry.draw(Submodel->m_geometry);
|
m_geometry.draw(Submodel->m_geometry);
|
||||||
|
|
||||||
// post-draw reset
|
// post-draw reset
|
||||||
// re-enable shadows
|
model_ubs.emission = 0.0f;
|
||||||
/*
|
|
||||||
setup_shadow_color( m_shadowcolor );
|
|
||||||
*/
|
|
||||||
|
|
||||||
glDisable(GL_BLEND);
|
glDisable(GL_BLEND);
|
||||||
|
|
||||||
@@ -2792,7 +2790,6 @@ void opengl_renderer::Render_Alpha(TSubModel *Submodel)
|
|||||||
}
|
}
|
||||||
// ...luminance
|
// ...luminance
|
||||||
|
|
||||||
model_ubs.emission = 0.0f;
|
|
||||||
if (Global.fLuminance < Submodel->fLight)
|
if (Global.fLuminance < Submodel->fLight)
|
||||||
{
|
{
|
||||||
model_ubs.emission = Submodel->f4Emision.a;
|
model_ubs.emission = Submodel->f4Emision.a;
|
||||||
@@ -2803,6 +2800,8 @@ void opengl_renderer::Render_Alpha(TSubModel *Submodel)
|
|||||||
model_ubo->update(model_ubs);
|
model_ubo->update(model_ubs);
|
||||||
m_geometry.draw(Submodel->m_geometry);
|
m_geometry.draw(Submodel->m_geometry);
|
||||||
|
|
||||||
|
model_ubs.emission = 0.0f;
|
||||||
|
|
||||||
#ifdef EU07_USE_OPTIMIZED_NORMALIZATION
|
#ifdef EU07_USE_OPTIMIZED_NORMALIZATION
|
||||||
switch (Submodel->m_normalizenormals)
|
switch (Submodel->m_normalizenormals)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user