From 6fc2bc19a7f82b701359abf3cce99538a92199f9 Mon Sep 17 00:00:00 2001 From: "A.C" Date: Wed, 10 Jun 2015 21:15:49 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=AD=E3=83=B3=E3=82=B0=E3=83=8E=E3=83=BC?= =?UTF-8?q?=E3=83=88=E3=81=AE=E3=81=A4=E3=81=AA=E3=81=8E=E7=9B=AE=E3=81=8C?= =?UTF-8?q?=E3=81=8D=E3=82=8C=E3=81=84=E3=81=AB=E3=81=AA=E3=82=8B=E3=82=88?= =?UTF-8?q?=E3=81=86=E4=BF=AE=E6=95=B4=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/NoteDisplay.cpp | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/NoteDisplay.cpp b/src/NoteDisplay.cpp index ea3ba5974e..a392c89b9a 100644 --- a/src/NoteDisplay.cpp +++ b/src/NoteDisplay.cpp @@ -775,7 +775,7 @@ void NoteDisplay::DrawHoldPart(vector &vpSpr, // The caps should always use the full texture. if(part_type == hpt_body) { - if(!part_args.anchor_to_top) + if (!part_args.anchor_to_top) { float tex_coord_bottom= SCALE(part_args.y_bottom - part_args.y_top, 0, unzoomed_frame_height, rect.top, rect.bottom); @@ -793,11 +793,26 @@ void NoteDisplay::DrawHoldPart(vector &vpSpr, add_to_tex_coord -= floorf(fTexCoordTop); } } + //part_args.y_start_pos = max(part_args.y_start_pos, y_head); // The bottom caps mysteriously hate me and their texture coords need to be // shifted by one pixel or there is a seam. -Kyz if(part_type == hpt_bottom) { - add_to_tex_coord= SCALE(1.0f, 0.0f, power_of_two(unzoomed_frame_height), 0.0f, 1.0f); + if (!part_args.anchor_to_top) + { + const float fYOffset = ArrowEffects::GetYOffsetFromYPos(column_args.column, y_start_pos, m_fYReverseOffsetPixels); + float offset = (unzoomed_frame_height - fYOffset)/4; + if (offset>=0){ + add_to_tex_coord = SCALE(offset, 0.0f, unzoomed_frame_height, 0.0f, 1.0f); + //add_to_tex_coord = 0.5f; + } + else{ + add_to_tex_coord = 0.0f; + } + } + // これは無いほうが綺麗につながっているように見える + // I seem to be better this does not exist has led to clean. -A.C + // add_to_tex_coord= SCALE(1.0f, 0.0f, power_of_two(unzoomed_frame_height), 0.0f, 1.0f); } DISPLAY->ClearAllTextures(); @@ -809,7 +824,6 @@ void NoteDisplay::DrawHoldPart(vector &vpSpr, // pos_z_vec will be used later to orient the hold. Read below. -Kyz static const RageVector3 pos_z_vec(0.0f, 0.0f, 1.0f); static const RageVector3 pos_y_vec(0.0f, 1.0f, 0.0f); - StripBuffer queue; for(float fY = y_start_pos; !last_vert_set; fY += part_args.y_step) { @@ -1028,9 +1042,9 @@ void NoteDisplay::DrawHoldBodyInternal(vector& sprite_top, DrawHoldPart(sprite_body, field_args, column_args, part_args, glow, hpt_body); // Draw the bottom cap part_args.y_top= y_tail; - part_args.y_bottom= tail_plus_bottom; - part_args.top_beat= bottom_beat; - part_args.y_start_pos= max(part_args.y_start_pos, y_head); + part_args.y_bottom = tail_plus_bottom; + part_args.top_beat = bottom_beat; + part_args.y_start_pos = max(part_args.y_start_pos, y_head); part_args.wrapping= false; DrawHoldPart(sprite_bottom, field_args, column_args, part_args, glow, hpt_bottom); }