예제 #1
0
//
//	ODBCGridCtrl::OnGetCellColors
//
bool 
ODBCGridCtrl::OnGetCellColors(	IN  int Row,
								IN  int Col,
								OUT COLORREF& TextColor,
								OUT COLORREF& BkColor,
								OUT UINT8& TextStyle) const
	{
	// NOTE: this routine is called VERY often by the painting routines. keep it
	//       as small/fast as possible!
	// NOTE: if you are comfortable with the default colors of the current cell,
	//       you should return FALSE, instead of returning TRUE and leaving the
	//       colors unchanged. this will increase drawing speed...

	if( mDraw.Type == CELL_SEPARATOR )
		return false;

	// change the background of even rows
	if( Row % 2 == 0 && !mDraw.Selected )
		{
		AdjustBrightness(BkColor, -15);
		AdjustBrightness(TextColor, 60);
		return true;
		}
	return (TextStyle != 0);
	}
예제 #2
0
void Blitter_16bppAnim::Draw(const Blitter::BlitterParams *bp, ZoomLevel zoom)
{
	const Pixel *src, *src_line;
	Colour16 *dst, *dst_line;
	Anim *anim, *anim_line;

	/* Find where to start reading in the source sprite */
	src_line = (const Pixel *)bp->sprite + (bp->skip_top * bp->sprite_width + bp->skip_left) * ScaleByZoom(1, zoom);
	dst_line = (Colour16 *)bp->dst + bp->top * bp->pitch + bp->left;
	anim_line = this->anim_buf + ((Colour16 *)bp->dst - (Colour16 *)_screen.dst_ptr) + bp->top * this->anim_buf_width + bp->left;

	for (int y = 0; y < bp->height; y++) {
		dst = dst_line;
		dst_line += bp->pitch;

		src = src_line;
		src_line += bp->sprite_width * ScaleByZoom(1, zoom);

		anim = anim_line;
		anim_line += this->anim_buf_width;

		for (int x = 0; x < bp->width; x++) {
			switch (mode) {
				case BM_COLOUR_REMAP:
					/* In case the m-channel is zero, do not remap this pixel in any way */
					anim->m = 0;
					anim->v = 0;
					if (src->m == 0) {
						if (src->a != 0) *dst = ComposeColourPA(src->c, src->a, *dst);
					} else {
						uint8 r = bp->remap[src->m];
						if (r != 0) {
							*dst = ComposeColourPA(AdjustBrightness(LookupColourInPalette(r), src->v), src->a, *dst);
							if (src->a == 15 && r >= PALETTE_ANIM_START) {
								anim->m = r - PALETTE_ANIM_START + 1;
								anim->v = src->v >> 1;
							}
						}
					}
					break;

				case BM_TRANSPARENT:
					/* TODO -- We make an assumption here that the remap in fact is transparency, not some colour.
					 *  This is never a problem with the code we produce, but newgrfs can make it fail... or at least:
					 *  we produce a result the newgrf maker didn't expect ;) */

					/* Make the current colour a bit more black, so it looks like this image is transparent */
					if (src->a != 0) *dst = MakeTransparent(*dst, 192);
					anim->m = 0;
					anim->v = 0;
					break;

				default:
					if (src->a == 15 && src->m >= PALETTE_ANIM_START) {
						*dst = AdjustBrightness(LookupColourInPalette(src->m), src->v);
						anim->m = src->m - PALETTE_ANIM_START + 1;
						anim->v = src->v >> 1;
					} else {
						if (src->a != 0) {
void CycleLights()
{
    //this is called once per second if no beats are detected
    CycleHue(3000);
    AdjustBrightness();
    UpdateLights(currentBri, 0, 10);
}
예제 #4
0
파일: Player.cpp 프로젝트: dkulp/fpp
void Player::ProcessChannelData(void)
{
	if (IsEffectRunning())
		OverlayEffects(m_seqData);

	if (UsingMemoryMapInput())
		OverlayMemoryMap(m_seqData);

	if (getControlMajor() && getControlMinor())
	{
		char thisMajor = NormalizeControlValue(m_seqData[getControlMajor()-1]);
		char thisMinor = NormalizeControlValue(m_seqData[getControlMinor()-1]);

		if ((m_seqLastControlMajor != thisMajor) ||
			(m_seqLastControlMinor != thisMinor))
		{
			m_seqLastControlMajor = thisMajor;
			m_seqLastControlMinor = thisMinor;

			if (m_seqLastControlMajor && m_seqLastControlMinor)
				TriggerEvent(m_seqLastControlMajor, m_seqLastControlMinor);
		}
	}

	if (channelTester->Testing())
		channelTester->OverlayTestData(m_seqData);

	if (m_brightness)
		AdjustBrightness();
}
예제 #5
0
void Triangle(double x1, double y1, double x2, double y2, double x3, double y3, GG::Clr color, bool border) {
    GG::Clr border_clr = color;
    if (border)
        AdjustBrightness(border_clr, 75);
    GG::Triangle(GG::Pt(GG::X(x1), GG::Y(y1)),
                 GG::Pt(GG::X(x2), GG::Y(y2)),
                 GG::Pt(GG::X(x3), GG::Y(y3)),
                 color, border ? border_clr : GG::CLR_ZERO);
}
void SlowBeatLights()
{
    AdjustBrightness();
    //figure out a good brightness increase
    int beatBri = (int)(currentBri * 1.25f);
    if (beatBri > 255) beatBri = 255;
    //transition the color immediately
    UpdateLights(beatBri, 0, 2);
    //fade brightness
    UpdateLights(5, 0, 8); //fade
}
예제 #7
0
Sprite *Blitter_16bppSimple::Encode(const SpriteLoader::Sprite *sprite, AllocatorProc *allocator)
{
	Pixel *dst;
	Sprite *dest_sprite = (Sprite *)allocator(sizeof(*dest_sprite) + (size_t)sprite->height * (size_t)sprite->width * sizeof(Pixel));

	dest_sprite->height = sprite->height;
	dest_sprite->width  = sprite->width;
	dest_sprite->x_offs = sprite->x_offs;
	dest_sprite->y_offs = sprite->y_offs;

	dst = (Pixel *)dest_sprite->data;
	SpriteLoader::CommonPixel *src = (SpriteLoader::CommonPixel *)sprite->data;

	for (int i = 0; i < sprite->height * sprite->width; i++) {
		if (src->m == 0) {
			dst[i].c = To16(src->r, src->g, src->b);
			dst[i].a = src->a / 16;
			dst[i].m = 0;
			dst[i].v = 0;
		} else {
			/* Get brightest value */
			uint8 rgb_max = max(src->r, max(src->g, src->b));
#if 0
			/* Pre-convert the mapping channel to a RGB value,
			   use 32bpp AdjustBrightness() variant for better colors,
			   because this function is not called each frame */
			if (rgb_max == 0) rgb_max = Blitter_32bppBase::DEFAULT_BRIGHTNESS;
			dst[i].c = To16(Blitter_32bppBase::AdjustBrightness(LookupColourInPalette32(src->m), rgb_max));
			dst[i].v = rgb_max / 16;
#endif
			rgb_max /= 16;

			/* Black pixel (8bpp or old 32bpp image), so use default value */
			if (rgb_max == 0) rgb_max = DEFAULT_BRIGHTNESS;

			/* Pre-convert the mapping channel to a RGB value,
			   use 32bpp AdjustBrightness() variant for better colors,
			   because this function is not called each frame */
			dst[i].c = AdjustBrightness(LookupColourInPalette(src->m), rgb_max);
			dst[i].v = rgb_max;

			dst[i].a = src->a / 16;
			dst[i].m = src->m;
		}
		src++;
	}

	return dest_sprite;
}
예제 #8
0
static VOID
Bri_OnTrackBar(PIMAGEADJUST pImgAdj,
           HWND hDlg)
{
    HDC hdcMem;
    DWORD TrackPos;

    TrackPos = (DWORD)SendDlgItemMessage(hDlg,
                                         IDC_BRI_TRACKBAR,
                                         TBM_GETPOS,
                                         0,
                                         0);

    SetDlgItemInt(hDlg,
                  IDC_BRI_EDIT,
                  TrackPos,
                  FALSE);

    if (IsDlgButtonChecked(hDlg, IDC_BRI_FULL) == BST_CHECKED)
    {
        pImgAdj->RedVal = pImgAdj->GreenVal = pImgAdj->BlueVal = TrackPos - BASECOLOUR;
    }
    else if (IsDlgButtonChecked(hDlg, IDC_BRI_RED) == BST_CHECKED)
    {
        pImgAdj->RedVal = TrackPos - BASECOLOUR;
    }
    else if (IsDlgButtonChecked(hDlg, IDC_BRI_GREEN) == BST_CHECKED)
    {
        pImgAdj->GreenVal = TrackPos - BASECOLOUR;
    }
    else if (IsDlgButtonChecked(hDlg, IDC_BRI_BLUE) == BST_CHECKED)
    {
        pImgAdj->BlueVal = TrackPos - BASECOLOUR;
    }

    hdcMem = GetDC(pImgAdj->hPicPrev);

    AdjustBrightness(pImgAdj->hBitmap,
                     pImgAdj->hPreviewBitmap,
                     pImgAdj->hPicPrev,
                     hdcMem,
                     pImgAdj->RedVal,
                     pImgAdj->GreenVal,
                     pImgAdj->BlueVal);

    ReleaseDC(pImgAdj->hPicPrev, hdcMem);
}
예제 #9
0
void CUI_MinRestoreButton::Render() {
    GG::Pt ul = UpperLeft();
    GG::Pt lr = LowerRight();
    GG::Clr color_to_use = ClientUI::WndInnerBorderColor();
    if (State() != BN_ROLLOVER)
        AdjustBrightness(color_to_use, BUTTON_DIMMING_SCALE_FACTOR);
    if (m_mode == MIN_BUTTON) {
        // draw a dash to signify the minimize command
        GG::Y middle_y = (lr.y + ul.y) / 2;
        glDisable(GL_TEXTURE_2D);
        glColor(color_to_use);
        glBegin(GL_LINES);
        glVertex(ul.x, middle_y);
        glVertex(lr.x, middle_y);
        glEnd();
        glEnable(GL_TEXTURE_2D);
    } else {
        // draw a square to signify the restore command
        GG::FlatRectangle(ul, lr, GG::CLR_ZERO, ClientUI::WndInnerBorderColor(), 1);
    }
}
예제 #10
0
static BOOL
Bri_OnCommand(PIMAGEADJUST pImgAdj,
          HWND hDlg,
          UINT uID)
{
    switch (uID)
    {
        case IDOK:
        {
            HDC hdcMem;

            hdcMem = GetDC(pImgAdj->Info->ImageEditors->hSelf);

            AdjustBrightness(pImgAdj->Info->ImageEditors->hBitmap,
                             pImgAdj->Info->ImageEditors->hBitmap,
                             pImgAdj->Info->ImageEditors->hSelf,
                             hdcMem,
                             pImgAdj->RedVal,
                             pImgAdj->GreenVal,
                             pImgAdj->BlueVal);

            ReleaseDC(pImgAdj->Info->ImageEditors->hSelf,
                      hdcMem);

            EndDialog(hDlg,
                      uID);

            return TRUE;
        }

        case IDCANCEL:
        {
            EndDialog(hDlg,
                      uID);
            return TRUE;
        }
    }

    return FALSE;
}
예제 #11
0
					/* Make the current colour a bit more black, so it looks like this image is transparent */
					if (src->a != 0) *dst = MakeTransparent(*dst, 192);
					anim->m = 0;
					anim->v = 0;
					break;

				default:
					if (src->a == 15 && src->m >= PALETTE_ANIM_START) {
						*dst = AdjustBrightness(LookupColourInPalette(src->m), src->v);
						anim->m = src->m - PALETTE_ANIM_START + 1;
						anim->v = src->v >> 1;
					} else {
						if (src->a != 0) {
							if (src->m >= PALETTE_ANIM_START) {
								*dst = ComposeColourPANoCheck(AdjustBrightness(LookupColourInPalette(src->m), src->v), src->a, *dst);
							} else {
								*dst = ComposeColourPA(src->c, src->a, *dst);
							}
						}
						anim->m = 0;
						anim->v = 0;
					}
					break;
			}
			dst++;
			src += ScaleByZoom(1, zoom);
		}
	}
}
예제 #12
0
파일: AVI.cpp 프로젝트: frodete/simcoupe
static bool WriteVideoHeader (FILE *f_)
{
    long lPos = WriteChunkStart(f_, "strh", "vids");

    fwrite("mrle", 4, 1, f);				// 'mrle' = Microsoft Run Length Encoding Video Codec
    WriteLittleEndianDWORD(0);				// flags, unused
    WriteLittleEndianDWORD(0);				// priority and language, unused
    WriteLittleEndianDWORD(0);				// initial frames
    WriteLittleEndianDWORD(TSTATES_PER_FRAME); // scale
    WriteLittleEndianDWORD(REAL_TSTATES_PER_SECOND); // rate
    WriteLittleEndianDWORD(0);				// start time
    WriteLittleEndianDWORD(dwVideoFrames);	// total frames in stream
    WriteLittleEndianDWORD(lVideoMax);		// suggested buffer size
    WriteLittleEndianDWORD(10000);			// quality
    WriteLittleEndianDWORD(0);				// sample size
    WriteLittleEndianWORD(0);				// left
    WriteLittleEndianWORD(0);				// top
    WriteLittleEndianWORD(width);			// right
    WriteLittleEndianWORD(height);			// bottom

    WriteChunkEnd(f_, lPos);

    lPos = WriteChunkStart(f_, "strf");

    WriteLittleEndianDWORD(40);				// sizeof(BITMAPINFOHEADER)
    WriteLittleEndianDWORD(width);			// biWidth;
    WriteLittleEndianDWORD(height);			// biHeight;
    WriteLittleEndianWORD(1);				// biPlanes;
    WriteLittleEndianWORD(8);				// biBitCount (8 = 256 colours)
    WriteLittleEndianDWORD(1);				// biCompression (1 = BI_RLE8)
    WriteLittleEndianDWORD(width*height);	// biSizeImage;
    WriteLittleEndianDWORD(0);				// biXPelsPerMeter;
    WriteLittleEndianDWORD(0);				// biYPelsPerMeter;
    WriteLittleEndianDWORD(256);			// biClrUsed;
    WriteLittleEndianDWORD(0);				// biClrImportant;

    const COLOUR *pcPal = IO::GetPalette();
    int i;

    // The first half of the palette contains SAM colours
    for (i = 0 ; i < N_PALETTE_COLOURS ; i++)
    {
        // Note: colour order is BGR
        fputc(pcPal[i].bBlue, f);
        fputc(pcPal[i].bGreen, f);
        fputc(pcPal[i].bRed, f);
        fputc(0, f);	// RGBQUAD has this as reserved (zero) rather than alpha
    }

    // Determine the appropriate brightness adjustment for scanlines
    int nScanAdjust = GetOption(scanlevel) - 100;
    if (nScanAdjust < -100) nScanAdjust = -100;

    // The second half of the palette contains colours in scanline intensity
    for (i = 0 ; i < N_PALETTE_COLOURS ; i++)
    {
        BYTE r = pcPal[i].bRed, g = pcPal[i].bGreen, b = pcPal[i].bBlue;
        AdjustBrightness(r,g,b, nScanAdjust);

        // Note: colour order is BGR
        fputc(b, f);
        fputc(g, f);
        fputc(r, f);
        fputc(0, f);	// RGBQUAD has this as reserved (zero) rather than alpha
    }

    return WriteChunkEnd(f_, lPos) != 0;
}
예제 #13
0
void Blitter_16bppSimple::Draw(const Blitter::BlitterParams *bp, ZoomLevel zoom)
{
	const Pixel *src, *src_line;
	Colour16 *dst, *dst_line;

	/* Find where to start reading in the source sprite */
	src_line = (const Pixel *)bp->sprite + (bp->skip_top * bp->sprite_width + bp->skip_left) * ScaleByZoom(1, zoom);
	dst_line = (Colour16 *)bp->dst + bp->top * bp->pitch + bp->left;

	for (int y = 0; y < bp->height; y++) {
		dst = dst_line;
		dst_line += bp->pitch;

		src = src_line;
		src_line += bp->sprite_width * ScaleByZoom(1, zoom);

		for (int x = 0; x < bp->width; x++) {
			switch (mode) {
				case BM_COLOUR_REMAP:
					/* In case the m-channel is zero, do not remap this pixel in any way */
					if (src->m == 0) {
						if (src->a != 0) *dst = ComposeColourPA(src->c, src->a, *dst);
					} else {
						if (bp->remap[src->m] != 0) *dst = ComposeColourPA(AdjustBrightness(LookupColourInPalette(bp->remap[src->m]), src->v), src->a, *dst);
					}
					break;

				case BM_CRASH_REMAP:
					if (src->m == 0) {
						if (src->a != 0) {
							uint8 g = MakeDark(src->c);
							*dst = ComposeColourRGBA(g, g, g, src->a, *dst);
						}
					} else {
						if (bp->remap[src->m] != 0) *dst = ComposeColourPA(AdjustBrightness(LookupColourInPalette(bp->remap[src->m]), src->v), src->a, *dst);
					}
					break;

				case BM_TRANSPARENT:
					/* TODO -- We make an assumption here that the remap in fact is transparency, not some colour.
					 *  This is never a problem with the code we produce, but newgrfs can make it fail... or at least:
					 *  we produce a result the newgrf maker didn't expect ;) */

					/* Make the current colour a bit more black, so it looks like this image is transparent */
					if (src->a != 0) *dst = MakeTransparent(*dst, 192);
					break;

				case BM_BLACK_REMAP:
					if (src->a != 0) {
						*dst = Colour16(0, 0, 0);
					}
					break;

				default:
					if (src->a != 0) *dst = ComposeColourPA(src->c, src->a, *dst);
					break;
			}
			dst++;
			src += ScaleByZoom(1, zoom);
		}
	}
}