Пример #1
0
void IsoSurfaceDialog::init()
{
    update();

    connect(&m_viewer.trapMesh(), SIGNAL(colorAChanged(QColor)), ui->colorButtonA, SLOT(setButtonColor(QColor)));
    connect(ui->colorButtonA, SIGNAL(selectedColor(QColor)), &m_viewer.trapMesh(), SLOT(setColorA(QColor)));

    connect(&m_viewer.trapMesh(), SIGNAL(colorBChanged(QColor)), ui->colorButtonB, SLOT(setButtonColor(QColor)));
    connect(ui->colorButtonB, SIGNAL(selectedColor(QColor)), &m_viewer.trapMesh(), SLOT(setColorB(QColor)));

    connect(ui->checkBoxVisible, SIGNAL(toggled(bool)), &m_viewer.trapMesh(), SLOT(setVisible(bool)));
    connect(&m_viewer.trapMesh(), SIGNAL(visibleChanged(bool)), ui->checkBoxVisible, SLOT(setChecked(bool)));

    connect(&m_viewer, SIGNAL(canCalculateIsoSurface(bool)), this, SLOT(setCalculateEnabled(bool)));
    connect(&m_viewer, SIGNAL(isoSurfaceProgress(int)), ui->calculateProgress, SLOT(setValue(int)));

    connect(&m_viewer.trapMesh(), SIGNAL(modeChanged(Mesh::Mode)), this, SLOT(updateComboBoxMode(Mesh::Mode)));

    connect(&m_viewer.trapMesh(), SIGNAL(colorAChanged(QColor)), this, SLOT(extractAlpha(QColor)));
    connect(&m_viewer.trapMesh(), SIGNAL(colorBChanged(QColor)), this, SLOT(extractAlpha(QColor)));
    connect(this, SIGNAL(sendAlpha(int)), this, SLOT(updateSpinBoxAlpha(int)));
}
Пример #2
0
/*!
*/
static void executeBlit_ColorAlpha_32_to_32( const SBlitJob * job )
{
	u32 *dst = (u32*) job->dst;

	const u32 alpha = extractAlpha( job->argb );
	const u32 src = job->argb;

	for ( s32 dy = 0; dy != job->height; ++dy )
	{
		for ( s32 dx = 0; dx != job->width; ++dx )
		{
			dst[dx] = PixelBlend32( dst[dx], src, alpha );
		}
		dst = (u32*) ( (u8*) (dst) + job->dstPitch );
	}
}
Пример #3
0
		//! draws a line from to with color
		void CImage::drawLine(const vector2di& from, const vector2di& to,
				const SColor &color)
		{
			AbsRectangle clip;
			GetClip(clip, this);

			vector2di p[2];

			if (ClipLine(clip, p[0], p[1], from, to))
			{
				u32 alpha = extractAlpha(color.color);

				switch (Format)
				{
					case ECF_A1R5G5B5:
						if (alpha == 256)
						{
							RenderLine16_Decal(this, p[0], p[1],
									SharedColorConverter::getInstance().A8R8G8B8toA1R5G5B5(
											color.color));
						}
						else
						{
							RenderLine16_Blend(this, p[0], p[1],
									SharedColorConverter::getInstance().A8R8G8B8toA1R5G5B5(
											color.color), alpha >> 3);
						}
						break;
					case ECF_A8R8G8B8:
						if (alpha == 256)
						{
							RenderLine32_Decal(this, p[0], p[1], color.color);
						}
						else
						{
							RenderLine32_Blend(this, p[0], p[1], color.color,
									alpha);
						}
						break;
					default:
					{
						break;
					}
				}
			}
		}
Пример #4
0
/*!
*/
static void executeBlit_TextureCopy_32_to_16( const SBlitJob * job )
{
	const u32 *src = static_cast<const u32*>(job->src);
	u16 *dst = static_cast<u16*>(job->dst);

	for ( s32 dy = 0; dy != job->height; ++dy )
	{
		for ( s32 dx = 0; dx != job->width; ++dx )
		{
			//16 bit Blitter depends on pre-multiplied color
			const u32 s = PixelLerp32( src[dx] | 0xFF000000, extractAlpha( src[dx] ) );
			dst[dx] = video::A8R8G8B8toA1R5G5B5( s );
		}

		src = (u32*) ( (u8*) (src) + job->srcPitch );
		dst = (u16*) ( (u8*) (dst) + job->dstPitch );
	}
}
Пример #5
0
//! draws a line from to with color
void CImage::drawLine(const core::position2d<s32>& from, const core::position2d<s32>& to, const SColor &color)
{
	AbsRectangle clip;
	GetClip( clip, this );

	core::position2d<s32> p[2];

	if ( ClipLine( clip, p[0], p[1], from, to ) )
	{
		u32 alpha = extractAlpha( color.color );

		switch ( Format )
		{
			case ECF_A1R5G5B5:
				if ( alpha == 256 )
				{
					RenderLine16_Decal( this, p[0], p[1], video::A8R8G8B8toA1R5G5B5( color.color ) );
				}
				else
				{
					RenderLine16_Blend( this, p[0], p[1], video::A8R8G8B8toA1R5G5B5( color.color ), alpha >> 3 );
				}
				break;
			case ECF_A8R8G8B8:
				if ( alpha == 256 )
				{
					RenderLine32_Decal( this, p[0], p[1], color.color );
				}
				else
				{
					RenderLine32_Blend( this, p[0], p[1], color.color, alpha );
				}
				break;
			default:
				break;
		}
	}
}