Added diffuse and glow to column renderers to make diffuse and effects affect notes the way they would affect actors inside a frame.
This commit is contained in:
+22
-3
@@ -957,7 +957,14 @@ void NoteDisplay::DrawHoldPart(vector<Sprite*> &vpSpr,
|
|||||||
fTexCoordTop += fAddToTexCoord;
|
fTexCoordTop += fAddToTexCoord;
|
||||||
|
|
||||||
const float fAlpha = ArrowGetAlphaOrGlow( bGlow, m_pPlayerState, column_args.column, fYOffset, fPercentFadeToFail, m_fYReverseOffsetPixels, field_args.draw_pixels_before_targets, field_args.fade_before_targets );
|
const float fAlpha = ArrowGetAlphaOrGlow( bGlow, m_pPlayerState, column_args.column, fYOffset, fPercentFadeToFail, m_fYReverseOffsetPixels, field_args.draw_pixels_before_targets, field_args.fade_before_targets );
|
||||||
const RageColor color = RageColor(fColorScale,fColorScale,fColorScale,fAlpha);
|
const RageColor color= RageColor(
|
||||||
|
column_args.diffuse.r * fColorScale,
|
||||||
|
column_args.diffuse.g * fColorScale,
|
||||||
|
column_args.diffuse.b * fColorScale,
|
||||||
|
column_args.diffuse.a * fAlpha);
|
||||||
|
|
||||||
|
// Holds don't get a glow pass because rendering them is already
|
||||||
|
// painfully slow. -Kyz
|
||||||
|
|
||||||
if( fAlpha > 0 )
|
if( fAlpha > 0 )
|
||||||
bAllAreTransparent = false;
|
bAllAreTransparent = false;
|
||||||
@@ -1187,8 +1194,16 @@ void NoteDisplay::DrawActor(const TapNote& tn, Actor* pActor, NotePart part,
|
|||||||
|
|
||||||
const float fAlpha = ArrowEffects::GetAlpha( m_pPlayerState, column_args.column, fYOffset, fPercentFadeToFail, m_fYReverseOffsetPixels, field_args.draw_pixels_before_targets, field_args.fade_before_targets );
|
const float fAlpha = ArrowEffects::GetAlpha( m_pPlayerState, column_args.column, fYOffset, fPercentFadeToFail, m_fYReverseOffsetPixels, field_args.draw_pixels_before_targets, field_args.fade_before_targets );
|
||||||
const float fGlow = ArrowEffects::GetGlow( m_pPlayerState, column_args.column, fYOffset, fPercentFadeToFail, m_fYReverseOffsetPixels, field_args.draw_pixels_before_targets, field_args.fade_before_targets );
|
const float fGlow = ArrowEffects::GetGlow( m_pPlayerState, column_args.column, fYOffset, fPercentFadeToFail, m_fYReverseOffsetPixels, field_args.draw_pixels_before_targets, field_args.fade_before_targets );
|
||||||
const RageColor diffuse = RageColor(fColorScale,fColorScale,fColorScale,fAlpha);
|
const RageColor diffuse = RageColor(
|
||||||
const RageColor glow = RageColor(1,1,1,fGlow);
|
column_args.diffuse.r * fColorScale,
|
||||||
|
column_args.diffuse.g * fColorScale,
|
||||||
|
column_args.diffuse.b * fColorScale,
|
||||||
|
column_args.diffuse.a * fAlpha);
|
||||||
|
const RageColor glow = RageColor(
|
||||||
|
column_args.glow.r * fColorScale,
|
||||||
|
column_args.glow.g * fColorScale,
|
||||||
|
column_args.glow.b * fColorScale,
|
||||||
|
column_args.glow.a * fGlow);
|
||||||
|
|
||||||
bool bIsHoldHead = tn.type == TapNoteType_HoldHead;
|
bool bIsHoldHead = tn.type == TapNoteType_HoldHead;
|
||||||
bool bIsHoldCap = bIsHoldHead || tn.type == TapNoteType_HoldTail;
|
bool bIsHoldCap = bIsHoldHead || tn.type == TapNoteType_HoldTail;
|
||||||
@@ -1415,6 +1430,8 @@ void NoteColumnRenderer::UpdateReceptorGhostStuff(Actor* receptor) const
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
m_column_render_args.SetPRZForActor(receptor, sp_pos, ae_pos, sp_rot, ae_rot, sp_zoom, ae_zoom);
|
m_column_render_args.SetPRZForActor(receptor, sp_pos, ae_pos, sp_rot, ae_rot, sp_zoom, ae_zoom);
|
||||||
|
receptor->SetInternalDiffuse(m_column_render_args.diffuse);
|
||||||
|
receptor->SetInternalGlow(m_column_render_args.glow);
|
||||||
}
|
}
|
||||||
|
|
||||||
void NoteColumnRenderer::DrawPrimitives()
|
void NoteColumnRenderer::DrawPrimitives()
|
||||||
@@ -1423,6 +1440,8 @@ void NoteColumnRenderer::DrawPrimitives()
|
|||||||
m_column_render_args.pos_handler= &NCR_current.m_pos_handler;
|
m_column_render_args.pos_handler= &NCR_current.m_pos_handler;
|
||||||
m_column_render_args.rot_handler= &NCR_current.m_rot_handler;
|
m_column_render_args.rot_handler= &NCR_current.m_rot_handler;
|
||||||
m_column_render_args.zoom_handler= &NCR_current.m_zoom_handler;
|
m_column_render_args.zoom_handler= &NCR_current.m_zoom_handler;
|
||||||
|
m_column_render_args.diffuse= m_pTempState->diffuse[0];
|
||||||
|
m_column_render_args.glow= m_pTempState->glow;
|
||||||
m_field_render_args->first_beat= NoteRowToBeat(m_field_render_args->first_row);
|
m_field_render_args->first_beat= NoteRowToBeat(m_field_render_args->first_row);
|
||||||
m_field_render_args->last_beat= NoteRowToBeat(m_field_render_args->last_row);
|
m_field_render_args->last_beat= NoteRowToBeat(m_field_render_args->last_row);
|
||||||
bool any_upcoming= false;
|
bool any_upcoming= false;
|
||||||
|
|||||||
@@ -165,6 +165,8 @@ struct NoteColumnRenderArgs
|
|||||||
const NCSplineHandler* pos_handler;
|
const NCSplineHandler* pos_handler;
|
||||||
const NCSplineHandler* rot_handler;
|
const NCSplineHandler* rot_handler;
|
||||||
const NCSplineHandler* zoom_handler;
|
const NCSplineHandler* zoom_handler;
|
||||||
|
RageColor diffuse;
|
||||||
|
RageColor glow;
|
||||||
float song_beat;
|
float song_beat;
|
||||||
int column;
|
int column;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user