Example #1
0
static void draw_image(SkCanvas* canvas, bool showGL, int flags) {
    SkPaint paint;
    paint.setAntiAlias(true);
    paint.setFilterBitmap(true);
    setFade(&paint, showGL);

    static SkBitmap* gBM;
    if (NULL == gBM) {
        gBM = new SkBitmap;
        SkImageDecoder::DecodeFile("/skimages/startrek.png", gBM);
    }
    SkRect r = SkRect::MakeWH(gBM->width(), gBM->height());

    canvas->save();
    canvas->translate(30, 30);
    canvas->scale(0.8f, 0.8f);
    canvas->drawBitmap(*gBM, 0, 0, &paint);
    if (showGL) {
        show_mesh(canvas, r);
    }
    canvas->restore();

    canvas->translate(210, 290);
    canvas->rotate(-35);
    canvas->drawBitmap(*gBM, 0, 0, &paint);
    if (showGL) {
        show_mesh(canvas, r);
    }
}
Example #2
0
static void draw_text(SkCanvas* canvas, bool showGL, int flags) {
    SkPaint paint;
    paint.setAntiAlias(true);
    paint.setLCDRenderText(true);
    const char text[] = "Graphics at Google";
    size_t len = strlen(text);
    setFade(&paint, showGL);

    canvas->translate(40, 50);
    for (int i = 0; i < 10; ++i) {
        paint.setTextSize(12 + i * 3);
        canvas->drawText(text, len, 0, 0, paint);
        if (showGL) {
            SkRect bounds[256];
            SkScalar widths[256];
            int count = paint.getTextWidths(text, len, widths, bounds);
            SkScalar adv = 0;
            for (int j = 0; j < count; ++j) {
                bounds[j].offset(adv, 0);
                show_mesh(canvas, bounds[j]);
                adv += widths[j];
            }
        }
        canvas->translate(0, paint.getTextSize() * 3 / 2);
    }
}
Example #3
0
static void draw_rect(SkCanvas* canvas, bool showGL, int flags) {
    SkPaint paint;
    paint.setAntiAlias(true);

    SkRect r = SkRect::MakeLTRB(50, 70, 250, 370);

    setFade(&paint, showGL);
    canvas->drawRect(r, paint);
    if (showGL) {
        show_mesh(canvas, r);
    }

    canvas->translate(320, 0);

    paint.setStyle(SkPaint::kStroke_Style);
    paint.setStrokeWidth(25);
    canvas->drawRect(r, paint);
    if (showGL) {
        SkScalar rad = paint.getStrokeWidth() / 2;
        SkPoint pts[8];
        r.outset(rad, rad);
        r.toQuad(&pts[0]);
        r.inset(rad*2, rad*2);
        r.toQuad(&pts[4]);

        const uint16_t indices[] = {
            0, 4, 1, 5, 2, 6, 3, 7, 0, 4
        };
        show_mesh(canvas, pts, indices, SK_ARRAY_COUNT(indices));
    }
}
Example #4
0
void PGE_QuestionBox::processBox(float)
{
    #ifndef __APPLE__
    if(AppSettings.interprocessing)
        qApp->processEvents();
    #endif
    SDL_Event event;
    while ( SDL_PollEvent(&event) )
    {
        PGE_Window::processEvents(event);
        switch(event.type)
        {
            case SDL_QUIT:
                reject();
            break;
            case SDL_KEYDOWN: // If pressed key
                processKeyEvent(event.key.keysym.sym);
            break;
            default:
              break;
        }
    }
    if(_menu.isSelected())
    {
        if(_menu.isAccepted())
            _answer_id = _menu.currentItemI();
        else
            _answer_id = -1;
        _page++; setFade(10, 0.0f, 0.05f);return;
    }
}
Example #5
0
ImageItem::ImageItem(const QPixmap & img,const QString & infotext, QWidget * parent) :
		QWidget(parent,Qt::FramelessWindowHint),
				mFade(0),
				mIsAnimationFinished(true),
				mPixmapOrig(img)
{
	resize(parent->size());
	setFade(mFade);
}
Example #6
0
void PGE_QuestionBox::update(float ticks)
{
    switch(_page)
    {
        case 0: setFade(10, 1.0f, 0.05f); _page++; break;
        case 1: processLoader(ticks); break;
        case 2: processBox(ticks); break;
        case 3: processUnLoader(ticks); break;
        case 4:
        default: running=false; break;
    }
}
Example #7
0
static void draw_line(SkCanvas* canvas, bool showGL, int flags) {
    SkPaint paint;
    paint.setAntiAlias(true);

    if (showGL) {
        setGLFrame(&paint);
    }
    canvas->drawLine(50, 50, 400, 100, paint);
    paint.setColor(SK_ColorBLACK);

    canvas->rotate(40);
    setFade(&paint, showGL);
    paint.setStrokeWidth(40);
    canvas->drawLine(100, 50, 450, 50, paint);
    if (showGL) {
        show_mesh(canvas, SkRect::MakeLTRB(100, 50-20, 450, 50+20));
    }
}
Example #8
0
void ContextWidget::updateImage(QImage img, bool created)
{
    DBUG << img.isNull() << currentBackdrop.isNull();
    oldBackdrop=currentBackdrop;
    oldIsAlbumCoverBackdrop=albumCoverBackdrop;
    currentBackdrop=QPixmap();
    animator.stop();
    if (img.isNull() && oldBackdrop.isNull()) {
        return;
    }
    if (img.isNull()) {
        currentImage=img;
    } else {
        if (backdropOpacity<100) {
            img=TreeView::setOpacity(img, (backdropOpacity*1.0)/100.0);
        }
        if (backdropBlur>0) {
            QImage blurred(img.size(), QImage::Format_ARGB32_Premultiplied);
            blurred.fill(Qt::transparent);
            QPainter painter(&blurred);
            qt_blurImage(&painter, img, backdropBlur, true, false);
            painter.end();
            img = blurred;
        }
        #ifdef SCALE_CONTEXT_BGND
        currentImage=img;
        #else
        currentBackdrop=QPixmap::fromImage(img);
        #endif
    }
    albumCoverBackdrop=created;
    resizeBackdrop();

    animator.stop();
    if (PlayQueueView::BI_Custom==backdropType || !isVisible()) {
        setFade(1.0);
    } else {
        fadeValue=0.0;
        animator.setDuration(250);
        animator.setEndValue(1.0);
        animator.start();
    }
}
Example #9
0
static void draw_oval(SkCanvas* canvas, bool showGL, int flags) {
    SkPaint paint;
    paint.setAntiAlias(true);

    SkRect r = SkRect::MakeLTRB(50, 70, 250, 370);

    setFade(&paint, showGL);
    canvas->drawOval(r, paint);
    if (showGL) {
        switch (flags) {
            case 0: {
                SkPath path;
                path.addOval(r);
                show_glframe(canvas, path);
            } break;
            case 1:
            case 3: {
                SkPath src, dst;
                src.addOval(r);
                tesselate(src, &dst);
                show_fan(canvas, dst, r.centerX(), r.centerY());
            } break;
            case 2: {
                SkPaint p(paint);
                show_mesh(canvas, r);
                setGLFrame(&p);
                paint.setStyle(SkPaint::kFill_Style);
                canvas->drawCircle(r.centerX(), r.centerY(), 3, p);
            } break;
        }
    }

    canvas->translate(320, 0);

    paint.setStyle(SkPaint::kStroke_Style);
    paint.setStrokeWidth(25);
    canvas->drawOval(r, paint);
    if (showGL) {
        switch (flags) {
            case 0: {
                SkPath path;
                SkScalar rad = paint.getStrokeWidth() / 2;
                r.outset(rad, rad);
                path.addOval(r);
                r.inset(rad*2, rad*2);
                path.addOval(r);
                show_glframe(canvas, path);
            } break;
            case 1: {
                SkPath path0, path1;
                SkScalar rad = paint.getStrokeWidth() / 2;
                r.outset(rad, rad);
                path0.addOval(r);
                r.inset(rad*2, rad*2);
                path1.addOval(r);
                show_mesh_between(canvas, path0, path1);
            } break;
            case 2: {
                SkPath path;
                path.addOval(r);
                show_glframe(canvas, path);
                SkScalar rad = paint.getStrokeWidth() / 2;
                r.outset(rad, rad);
                show_mesh(canvas, r);
            } break;
            case 3: {
                SkScalar rad = paint.getStrokeWidth() / 2;
                r.outset(rad, rad);
                SkPaint paint;
                paint.setAlpha(0x33);
                canvas->drawRect(r, paint);
                show_mesh(canvas, r);
            } break;
        }
    }
}
Example #10
0
void GfxPalette32::fadeOff() {
	setFade(100, 0, 255);
}
Example #11
0
void PGE_QuestionBox::reject()
{
    _answer_id=-1; _page++; setFade(10, 0.0f, 0.05f);
    if(reject_snd>0)
        PGE_Audio::playSound(reject_snd);
}
Example #12
0
KinectScene2::KinectScene2() : ofxFadeScene("Kinect2")
{
	setSingleSetup(true); // call setup each time the scene is loaded
	setFade(1000, 1000); // 1 second fade in/out		
	bUseDepth = true;
}
void IMuseDigital::playComiMusic(const char *songName, const imuseComiTable *table, int atribPos, bool sequence) {
	int hookId = 0;

	if ((songName != NULL) && (atribPos != 0)) {
		if (table->atribPos != 0)
			atribPos = table->atribPos;
		hookId = _attributes[COMI_STATE_OFFSET + atribPos];
		if (table->hookId != 0) {
			if ((hookId != 0) && (table->hookId > 1)) {
				_attributes[COMI_STATE_OFFSET + atribPos] = 2;
			} else {
				_attributes[COMI_STATE_OFFSET + atribPos] = hookId + 1;
				if (table->hookId < hookId + 1)
					_attributes[COMI_STATE_OFFSET + atribPos] = 1;
			}
		}
	}

	switch (table->opcode) {
		case 0:
			fadeOutMusic(120);
			break;
		case 8:
		case 9:
			setHookId(table->soundId, table->soundId);
			break;
		case 1:
			if (table->filename[0] == 0) {
				fadeOutMusic(120);
				return;
			}
			fadeOutMusic(120);
			startMusic(table->filename, table->soundId, 0, 1);
			setFade(table->soundId, 127, 120);
			break;
		case 2:
			if (table->filename[0] == 0) {
				fadeOutMusic(60);
				return;
			}
			fadeOutMusic(table->fadeOut60TicksDelay);
			startMusic(table->filename, table->soundId, table->hookId, 127);
			break;
		case 3:
		case 4:
		case 12:
			if (table->filename[0] == 0) {
				fadeOutMusic(60);
				return;
			}
			fadeOutMusic(table->fadeOut60TicksDelay);
			if ((!sequence) && (table->atribPos != 0) &&
					(table->atribPos == _comiStateMusicTable[_curMusicState].atribPos)) {
				startMusic(table->filename, table->soundId, 0, 127);
				return;
			}
			if (table->opcode == 12) {
				startMusic(table->filename, table->soundId, table->hookId, 127);
			} else {
				startMusic(table->filename, table->soundId, hookId, 127);
			}
			break;
	}
}
Example #14
0
// ---
void QGAMES::Background::initialize ()
{
	// The initial values...
	int fadeGrade = 255;
	bool autMove = false;
	QGAMES::Vector movDirection (__BD 1, __BD 0, __BD 0);
	int speed = 0, pixels = 0;
	QGAMES::Background* linkedBackground = NULL;
	int linkedSpeed = 0;
	bool roll = false;
	bool fix = false;

	// Has the fasdegrade property been defined?
	if (existObjProperty (_FADEGRADEPROPERTY))
		fadeGrade = std::stoi (objectProperty (_FADEGRADEPROPERTY));

	// Has the automatic movement property been defined?
	if (existObjProperty (_AUTOMATICMOVEPROPERTY))
		autMove = (objectProperty (_AUTOMATICMOVEPROPERTY) == 
			std::string (__YES_STRING__)) ? true : false ;

	// Has the movement direction property been defined?
	if (existObjProperty (_MOVDIRECTIONPROPERTY))
	{
		std::vector <int> cV;
		std::string m = objectProperty (_MOVDIRECTIONPROPERTY);
		while (m != std::string (__NULL_STRING__))
		{
			int cP = m.find_first_of (','); // The vector dta is separated by comma!
			if (cP != -1)
			{
				cV.push_back (std::stoi (m.substr (0, cP)));
				m = (cP != m.length () - 1) 
					? m.substr (cP + 1) : std::string (__NULL_STRING__);
			}
			else
			{
				cV.push_back (std::stoi (m));
				m = std::string (__NULL_STRING__);
			}
		}

		movDirection = QGAMES::Vector ((cV.size () > 0) ? __BD cV [0] : __BD 0,
			(cV.size () > 1) ? __BD cV [1] : __BD 0, (cV.size () > 2) ? __BD cV [2] : __BD 0);
	}

	// Has the speed property been defined?
	if (existObjProperty (_SPEEDPROPERTY))
		speed = std::stoi (objectProperty (_SPEEDPROPERTY));
	// Has the pixels property been defined?
	if (existObjProperty (_PIXELSPROPERTY))
		pixels = std::stoi (objectProperty (_PIXELSPROPERTY));
	
	// Has the background linked been defined?
	if (existObjProperty (_LINKEDBKPROPERTY))
	{
		assert (game ()); // The game has to have been defined...
		linkedBackground = (QGAMES::Background*) game () -> objectBuilder () -> 
			object (std::stoi (objectProperty (_LINKEDBKPROPERTY)));
		linkedBackground -> initialize ();
	}
	
	// Has the speed of the background linked been defined?
	if (existObjProperty (_SPEEDLINKEDBKPROPERTY))
		linkedSpeed = std::stoi (objectProperty (_SPEEDLINKEDBKPROPERTY));

	// Has to roll?
	if (existObjProperty (_ROLLPROPERTY))
		roll = (objectProperty (_ROLLPROPERTY) == 
			std::string (__YES_STRING__)) ? true : false ;

	// The position is fixed?
	if (existObjProperty (_FIXPOSITIONPROPERTY))
		fix = (objectProperty (_FIXPOSITIONPROPERTY) == 
			std::string (__YES_STRING__)) ? true : false ;

	// The background is a mandatory attribute...
	// Sets the fadegrade
	setFade (fadeGrade);
	// Sets the movement
	setMove (autMove, movDirection);
	// Sets the movement data
	setMovementData (speed, pixels);
	// Sets the linked background if any...
	setLinkedBackground (linkedSpeed, linkedBackground);
	// Sets whether it rolls or not!
	setRoll (roll);
	// Sets whether the position is or not fix...
	setFixPosition (fix);

	// Restats the counters...
	reStartAllCounters ();

	// Initially the position of the background is to 0...
	setPosition (QGAMES::Position::_cero);
}
void PGE_TextInputBox::processBox(double tickTime)
{
    PGE_BoxBase::processBox(tickTime);

    bool wasExitKeyPress = m_keys.run_pressed || m_keys.alt_run_pressed || m_keys.start_pressed;
    if(wasExitKeyPress)
    {
        if(m_keys.start_pressed || m_keys.jump_pressed || m_keys.alt_jump_pressed)
            m_inputTextSrc = m_inputText;
        nextPage();
        setFade(10, 0.0, 0.05);
        SDL_StopTextInput();
        return;
    }

    m_blinkTimeout -= tickTime;
    if(m_blinkTimeout < 0.0)
    {
        m_blinkShown = !m_blinkShown;
        m_blinkTimeout += (tickTime < 250.0) ? 250.0 : tickTime + 250.0;
    }

    SDL_StartTextInput();
    SDL_Event event;

    while(SDL_PollEvent(&event))
    {
        PGE_Window::processEvents(event);

        switch(event.type)
        {
        case SDL_QUIT:
            nextPage();
            setFade(10, 0.0, 0.05);
            SDL_StopTextInput();
            break;

        case SDL_KEYDOWN: // If pressed key
        {
            switch(event.key.keysym.sym)
            {
            // Check which
            case SDLK_ESCAPE: // ESC
            case SDLK_RETURN:// Enter
            case SDLK_KP_ENTER:
            case SDLK_AC_BACK://Android "back" key
            {
                if(event.key.keysym.sym != SDLK_ESCAPE && event.key.keysym.sym != SDLK_AC_BACK)
                    m_inputTextSrc = m_inputText;
                nextPage();
                setFade(10, 0.0, 0.05);
                SDL_StopTextInput();
                break;
            }

            case SDLK_BACKSPACE:
            {
                if(m_inputText.length() > 0)
                {
                    FontManager::utf8_pop_back(m_inputText);
                    updatePrintable();
                }
                break;
            }

            default:
                break;
            }

            switch(event.key.keysym.scancode)
            {
            case SDL_SCANCODE_V:
            {
                if((event.key.keysym.mod & KMOD_CTRL) && (SDL_HasClipboardText() == SDL_TRUE))
                {
                    m_inputText.append(SDL_GetClipboardText());
                    std::remove(m_inputText.begin(), m_inputText.end(), '\r');
                    std::replace(m_inputText.begin(), m_inputText.end(), '\n', ' ');
                    updatePrintable();
                }
                break;
            }
            default:
                break;
            }

            break;
        }

        case SDL_TEXTINPUT:
        {
            D_pLogDebug("TEXT INPUT EVENT %s", event.text.text);
            m_inputText.append(event.text.text);
            updatePrintable();
        }
        break;

        case SDL_TEXTEDITING:
        {
            D_pLogDebug("TEXT EDIT EVENT start %d, %s", event.edit.start, event.edit.text);
            m_inputText      = event.edit.text;
            m_cursor          = event.edit.start;
            m_selectionLength   = event.edit.length;
            updatePrintable();
        }
        break;

        //            case SDL_MOUSEBUTTONDOWN:
        //                switch(event.button.button)
        //                {
        //                    case SDL_BUTTON_LEFT:
        //                    {
        //                        _page++;
        //                        setFade(10, 0.0f, 0.05f);
        //                    }
        //                    break;
        //                }
        //            break;
        default:
            break;
        }
    }
}
Example #16
0
void IMuseDigital::parseScriptCmds(int cmd, int b, int c, int d, int e, int f, int g, int h) {
	int soundId = b;
	int sub_cmd = c;

	if (!cmd)
		return;

	switch (cmd) {
	case 10: // ImuseStopAllSounds
		stopAllSounds();
		break;
	case 12: // ImuseSetParam
		switch (sub_cmd) {
		case 0x400: // select group volume
			selectVolumeGroup(soundId, d);
			break;
		case 0x500: // set priority
			setPriority(soundId, d);
			break;
		case 0x600: // set volume
			setVolume(soundId, d);
			break;
		case 0x700: // set pan
			setPan(soundId, d);
			break;
		default:
			warning("IMuseDigital::doCommand SetParam DEFAULT command %d", sub_cmd);
			break;
		}
		break;
	case 14: // ImuseFadeParam
		switch (sub_cmd) {
		case 0x600: // set volume fading
			if ((d != 0) && (e == 0))
				setVolume(soundId, d);
			else if ((d == 0) && (e == 0))
				stopSound(soundId);
			else
				setFade(soundId, d, e);
			break;
		default:
			warning("IMuseDigital::doCommand FadeParam DEFAULT sub command %d", sub_cmd);
			break;
		}
		break;
	case 25: // ImuseStartStream
		debug(3, "ImuseStartStream (%d, %d, %d)", soundId, c, d);
		break;
	case 26: // ImuseSwitchStream
		debug(3, "ImuseSwitchStream (%d, %d, %d, %d, %d)", soundId, c, d, e, f);
		break;
	case 0x1000: // ImuseSetState
		debug(5, "ImuseSetState (%d)", b);
		if ((_vm->_game.id == GID_DIG) && (_vm->_game.features & GF_DEMO)) {
			if (b == 1) {
				fadeOutMusic(200);
				startMusic(1, 127);
			} else {
				if (getSoundStatus(2) == 0) {
					fadeOutMusic(200);
					startMusic(2, 127);
				}
			}
		} else if ((_vm->_game.id == GID_CMI) && (_vm->_game.features & GF_DEMO)) {
			if (b == 2) {
				fadeOutMusic(108);
				startMusic("in1.imx", 1100, 0, 127);
			} else if (b == 4) {
				fadeOutMusic(108);
				startMusic("in2.imx", 1120, 0, 127);
			} else if (b == 8) {
				fadeOutMusic(108);
				startMusic("out1.imx", 1140, 0, 127);
			} else if (b == 9) {
				fadeOutMusic(108);
				startMusic("out2.imx", 1150, 0, 127);
			} else if (b == 16) {
				fadeOutMusic(108);
				startMusic("gun.imx", 1210, 0, 127);
			} else {
				fadeOutMusic(120);
			}
		} else if (_vm->_game.id == GID_DIG) {
			setDigMusicState(b);
		} else if (_vm->_game.id == GID_CMI) {
			setComiMusicState(b);
		} else if (_vm->_game.id == GID_FT) {
			setFtMusicState(b);
		}
		break;
	case 0x1001: // ImuseSetSequence
		debug(5, "ImuseSetSequence (%d)", b);
		if (_vm->_game.id == GID_DIG) {
			setDigMusicSequence(b);
		} else if (_vm->_game.id == GID_CMI) {
			setComiMusicSequence(b);
		} else if (_vm->_game.id == GID_FT) {
			setFtMusicSequence(b);
		}
		break;
	case 0x1002: // ImuseSetCuePoint
		debug(5, "ImuseSetCuePoint (%d)", b);
		if (_vm->_game.id == GID_FT) {
			setFtMusicCuePoint(b);
		}
		break;
	case 0x1003: // ImuseSetAttribute
		debug(5, "ImuseSetAttribute (%d, %d)", b, c);
		assert((_vm->_game.id == GID_DIG) || (_vm->_game.id == GID_FT));
		if (_vm->_game.id == GID_DIG) {
			_attributes[b] = c;
		}
		break;
	case 0x2000: // ImuseSetGroupSfxVolume
		break;
	case 0x2001: // ImuseSetGroupVoiceVolume
		break;
	case 0x2002: // ImuseSetGroupMusicVolume
		break;
	default:
		error("IMuseDigital::doCommand DEFAULT command %d", cmd);
	}
}
Example #17
0
void fbClass::runCommand(std::string command_string)
{
	std::string command;
	std::istringstream iss(command_string);
	std::getline(iss, command, ' ');
	int values_int[10];
	std::string value;
	//printf("Command (fb): %s\n", command_string.c_str());

	if (command == "FILLBOX")
	{
		int i = 0;
		while (std::getline(iss, value, ' '))
		{
			values_int[i++] = atoi(value.c_str());
		}
		if (i >= 4)
		{
			fillBox(values_int[0], values_int[1], values_int[2], values_int[3], values_int[4]);
		}
	}
	else if (command == "SETFADE")
	{
		int i = 0;
		while (std::getline(iss, value, ' '))
		{
			values_int[i++] = atoi(value.c_str());
		}

		if (i >= 7)
		{
			setFade(values_int[0], values_int[1], values_int[2], values_int[3], values_int[4], values_int[5], values_int[6]);
		}
	}
	else if (command == "PUTTEXT") // x y color max_size(-1) alignment(=0) text
	{
		for (int i = 0; i < 5; i++)
		{
			std::getline(iss, value, ' ');
			values_int[i] = atoi(value.c_str());
		}
		std::getline(iss, value, '\n');
		/*float size;
		sscanf(value.c_str(), "%f", &size);*/
		std::getline(iss, value, '\n');

		if (vars->isavailable(value))
			value = vars->getvalue(value);
		/*if (size != factor)
			setTextSize(size);*/

		putText(values_int[0], values_int[1], values_int[2], value, values_int[3], values_int[4]);
	}
	else if (command == "CLEARSCREEN")
	{
		//printf("ClearScreen\n");
		clearScreen();
	}
	else if (command == "SETTEXTSIZE")
	{
		std::getline(iss, value, ' ');
		float val;
		sscanf(value.c_str(), "%f", &val);
		//std::cout << "Value: " << val << std::endl;

		setTextSize(val);
	}
}