Click here to Skip to main content
15,907,329 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralHelp with a simple Paint clone in Win32 Pin
Lord Kixdemp2-Feb-08 9:59
Lord Kixdemp2-Feb-08 9:59 
GeneralRe: Help with a simple Paint clone in Win32 Pin
CPallini2-Feb-08 11:11
mveCPallini2-Feb-08 11:11 
GeneralRe: Help with a simple Paint clone in Win32 Pin
Lord Kixdemp2-Feb-08 14:16
Lord Kixdemp2-Feb-08 14:16 
QuestionSVG window Pin
neilsolent2-Feb-08 8:27
neilsolent2-Feb-08 8:27 
GeneralRe: SVG window Pin
Gary R. Wheeler3-Feb-08 0:51
Gary R. Wheeler3-Feb-08 0:51 
GeneralRe: SVG window Pin
neilsolent3-Feb-08 6:29
neilsolent3-Feb-08 6:29 
QuestionProblem with Doc-View Application Pin
Member 4431372-Feb-08 7:30
Member 4431372-Feb-08 7:30 
GeneralWell in debug version, but not in release version [Updated] [modified] Pin
followait2-Feb-08 6:50
followait2-Feb-08 6:50 
Updated:
I add /Op as a compiler option for release version, it's ok.
It quite likes a comparing inaccuracy problem.
Try tomorrow...
zzzzzz


-----------------------

I use these functions to change the lum of an rgb color.
The debug version and release versions have different result.
Why? Thanks.
void RGB2HSL(COLORREF rgb,REAL *pH,REAL *pS,REAL *pL)
{
	REAL var_R=REAL(GetRValue(rgb))/255.f;
	REAL var_G=REAL(GetGValue(rgb))/255.f;
	REAL var_B=REAL(GetBValue(rgb))/255.f;
	REAL var_min=min(var_R,var_G);
	var_min=min(var_min,var_B);
	REAL var_max=max(var_R,var_G);
	var_max=max(var_max,var_B);
	REAL delta_max=var_max-var_min;

	*pL=(var_max+var_min)*0.5f;
	
	if (delta_max==0.f) {
		*pH=0.f;
		*pS=0.f;
	} else {
		if (*pL<0.5f)
			*pS=delta_max/(var_max+var_min);
		else
			*pS=delta_max/(2.f-var_max-var_min);
			
		REAL delta_R=(((var_max-var_R)/6.f)+(delta_max*0.5f))/delta_max;
		REAL delta_G=(((var_max-var_G)/6.f)+(delta_max*0.5f))/delta_max;
		REAL delta_B=(((var_max-var_B)/6.f)+(delta_max*0.5f))/delta_max;
		if (var_R==var_max)
			*pH=delta_B-delta_G;
		else if (var_G==var_max)
			*pH=(1.f/3.f)+delta_R-delta_B;
		else if (var_B==var_max)
			*pH=(2.f/3.f)+delta_G-delta_R;
		if (*pH<0.f) ++*pH;
		if (*pH>1.f) --*pH;
	}
}

inline REAL Hue_2_RGB(REAL v1,REAL v2,REAL vH)
{
	if(vH<0.f)
		++vH;
	if(vH>1.f)
		--vH;
	if((vH*6.f)<1.f)
		return(v1+(v2-v1)*vH*6.f);
	if((vH*2.f)<1.f)
		return(v2);
	if((vH*3.f)<2.f)
		return(v1+(v2-v1)*((2.f/3.f)-vH)*6.f);
	return(v1);
}

void HSL2RGB(REAL H,REAL S,REAL L,COLORREF &rgb)
{
	REAL R,G,B;
	if (S==0.f) {
		R=L*255.f;
		G=L*255.f;
		B=L*255.f;
	} else {
		REAL var_1,var_2;
		if (L<0.5f)
			var_2=L*(1.f+S);
		else
			var_2=(L+S)-(S*L);
		var_1=L*2.f-var_2;
		R=Hue_2_RGB(var_1,var_2,H+(1.f/3.f))*255.f;
		G=Hue_2_RGB(var_1,var_2,H)*255.f;
		B=Hue_2_RGB(var_1,var_2,H-(1.f/3.f))*255.f;
	}
	rgb=RGB(R,G,B);
}


modified on Saturday, February 02, 2008 1:02:11 PM

GeneralRe: Well in debug version, but not in release version [Updated] Pin
Mr. Surprise2-Feb-08 7:11
Mr. Surprise2-Feb-08 7:11 
GeneralRe: Well in debug version, but not in release version [Updated] Pin
followait2-Feb-08 21:52
followait2-Feb-08 21:52 
GeneralRe: Well in debug version, but not in release version [Updated] Pin
followait2-Feb-08 22:14
followait2-Feb-08 22:14 
GeneralRe: Well in debug version, but not in release version [Updated] Pin
Mr. Surprise3-Feb-08 1:42
Mr. Surprise3-Feb-08 1:42 
GeneralRe: Well in debug version, but not in release version [Updated] Pin
followait3-Feb-08 2:09
followait3-Feb-08 2:09 
GeneralHelp - need download location for Visual studio 6 Pin
rajas2-Feb-08 4:29
rajas2-Feb-08 4:29 
JokeRe: Help - need download location for Visual studio 6 Pin
Johpoke2-Feb-08 7:28
Johpoke2-Feb-08 7:28 
GeneralRe: Help - need download location for Visual studio 6 Pin
Mark Salsbery2-Feb-08 7:46
Mark Salsbery2-Feb-08 7:46 
GeneralRe: Help - need download location for Visual studio 6 Pin
Johpoke2-Feb-08 7:48
Johpoke2-Feb-08 7:48 
GeneralRe: Help - need download location for Visual studio 6 Pin
Mark Salsbery2-Feb-08 7:49
Mark Salsbery2-Feb-08 7:49 
GeneralRe: Help - need download location for Visual studio 6 Pin
Mark Salsbery2-Feb-08 7:47
Mark Salsbery2-Feb-08 7:47 
GeneralRe: Help - need download location for Visual studio 6 Pin
Gary R. Wheeler3-Feb-08 0:59
Gary R. Wheeler3-Feb-08 0:59 
GeneralRe: Help - need download location for Visual studio 6 Pin
Mark Salsbery3-Feb-08 6:20
Mark Salsbery3-Feb-08 6:20 
GeneralRe: Help - need download location for Visual studio 6 Pin
Gary R. Wheeler4-Feb-08 23:57
Gary R. Wheeler4-Feb-08 23:57 
GeneralRe: Help - need download location for Visual studio 6 Pin
Mark Salsbery5-Feb-08 5:26
Mark Salsbery5-Feb-08 5:26 
GeneralRe: Help - need download location for Visual studio 6 Pin
Gary R. Wheeler5-Feb-08 13:04
Gary R. Wheeler5-Feb-08 13:04 
GeneralAdding items to the Flash context menu Pin
Alberto Bar-Noy2-Feb-08 4:10
Alberto Bar-Noy2-Feb-08 4:10 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.