void MciClips::update(const ClipParams& param)
{
if(memcmp(&pa, ¶m, sizeof(ClipParams)) == 0)
return;
pa = param;
m_bSoftCopyFinest = (pa.padHV.width == 0 && pa.padHV.height == 0 && pa.startLevel == 0 && pa.inputBitDepth == 8);
clear_memory();
for(int comp = 0 ; comp < NUM_COLOR_COMPS; comp++)
{
if(comp != COMP_Y && !pa.hasChroma)
continue;
const int csx = getComponentShiftW(comp, pa.chFmt);
const int csy = getComponentShiftH(comp, pa.chFmt);
m_finestClips[comp].resize(pa.nSubPels * pa.nSubPels);
m_roughClips[comp].resize(pa.endLevel);
if(pa.startLevel == 0)
{
for(int i = 0 ; i < pa.nSubPels * pa.nSubPels; i++)
{
Size area(pa.frameSize), pad(pa.padHV);
area.width >>= csx;
area.height >>= csy;
pad.width >>= csx;
pad.height >>= csy;
int pitch = area.width + pad.width * 2;
int pheight = area.height + pad.height * 2;
m_data.push_back((uint8_t *)aligned_alloc(32, pheight * pitch));
m_finestClips[comp][i] = PelBuf(m_data.back(), pitch, area, pad, pad);
}
}
for (int i = max(1, pa.startLevel); i <= pa.endLevel; i++)
{
Size area(pa.frameSize), pad(pa.padHV);
area.width >>= (i + csx);
area.height >>= (i + csy);
pad.width >>= (i + csx);
pad.height >>= (i + csy);
int pitch = area.width + pad.width * 2;
int pheight = area.height + pad.height * 2;
m_data.push_back((uint8_t *)aligned_alloc(32, pheight * pitch));
m_roughClips[comp][i] = PelBuf(m_data.back(), pitch, area, pad, pad);
}
}
}
나름 조심스럽게 짜곤이쓴데 깔끔하게 짜는지는 모르겠다 ㅇㅅㅇ
메모리 라이브러리랑 class는 아직 잘 못 다루겠던데.. 사실 거의 만져본적이 없음
한줄 짜리 if문은 지양해야되는구나.. 사람마다 말이 달라서.. 음.. 따라가는게 맞는듯
백준에서는 쓰라고 하던데.. 지양해야될 코드인듯
하나로 한다는 걸 지양해야될듯
요즘 코딩하면서 잘 모르겠다는 느낌은 많이 받는 것 같긴한듯.... 누구는 A를 이야기하고 누구는 B를 이야기 함.. 장기적으로 보면 양쪽 스타일에 익숙해졌으니 좋은 건가.. 코딩을 하면 할 수록 모르겠다.. 대문자+소문자_대문자+소문자 코드 짜는 사람도 있고 대문자+소문자_소문자+소문자 그냥 대문자+소문자 이런식으로 변수 표기 되는 경우도 있고.. 짜면 짤 수록 모르겠다..
python 같은게 많이 쓰이고 있는거 보면 상관없는것 같기도함 ㅇㅅㅇ
깔끔하고 이쁩니다. 아래 부터는 지극히 개인적 의견입니다. 참고만 하면 될 듯합니다. pa.padHV.width == 0 이런 경우 if(pa.padHV.width = 0) 실수로 이렇게 써도 컴파일러가 잡아 주지 못하기 때문에 저는 팀원들에게 이렇게 if(0 == pa.padHV.width) 상수를 앞에 쓰라고 강요 합니다. !pa.hasChroma 경우 true를 기대하는 것인지 false를 기대하는지 명시하라고 합니다. false == pa.hasChroma 그리고 한줄 짜리 if라도 블록을 구분 하라고 꼭 이야기 하네요.
오 좋은 지적 감사합니다
한줄 짜리 블록 얘기 말고 상수 앞에 오는 거랑 false 써주는 건 난 반댈세
시간 있을 때 이런 거 한 번 참고해보셈
https://google.github.io/styleguide/cppguide.html