コード例 #1
0
ファイル: cmd.cpp プロジェクト: kotohvost/arvid
/* menu */
void shell (void) {
	/* run shell */
	VClear ();
	VSync ();
	VRestore ();
	runl(0, ABSSHELL, SHELL, "-i", NULL);
	VReopen ();
	VClear ();
	setdir (cur == left ? right : left, NULL);
	setdir (cur, NULL);
}
コード例 #2
0
ファイル: cmd.cpp プロジェクト: kotohvost/arvid
/* main, menu */
void quit (void) {
	int choice;

	choice = getchoice (ppid == 1, " Demos Commander ",
		ppid == 1 ? "Do you want to log out ?" :
		"Do you want to quit the Demos Commander ?",
		NULL, " Yes ", " No ", " Exec shell ");
	if (choice == 0)
		quitdeco ();
	if (choice == 2) {
		/* exec shell */
		VClear ();
		VSync ();
		v.VClose();
		execle (ABSSHELL, SHELL, "-i", NULL, EnvVector);
		exit (0);
	}
	/* else stay here */
}
コード例 #3
0
ファイル: CSelectBox.cpp プロジェクト: IvanTutavac/DD_0.4.2
void	CSelectBox::VReset()
{
	VClear();
	CWidget::VReset();
}
コード例 #4
0
ファイル: main.cpp プロジェクト: kotohvost/arvid
main (int argc, char **argv, char **envp) {
	register c;

	if (argc > 2) {
		outerr("Usage: deco [dirname]\n",0);
		exit (1);
	}
	outerr("Demos Commander, Copyright (C) 1989-1994 Serge Vakulenko\n",0);
	palette = dflt_palette;
	EnvInit (envp);
	uid = getuid ();
	gid = getgid ();
# ifdef GROUPS
	gidnum = getgroups (sizeof(gidlist)/sizeof(gidlist[0]), (unsigned int *)gidlist);
# endif
	ppid = getppid ();
	user = username (uid);
	group = groupname (gid);
	tty = ttyname (0);
	machine = getmachine ();
#if 0
	sigign();
#else
	signal(SIGTERM, SIG_IGN);
	signal(SIGQUIT, SIG_IGN);
	signal(SIGINT, SIG_IGN);
# ifdef SIGTSTP
	signal(SIGTSTP, SIG_IGN);
# endif
#endif
	init ();
//	inithome ();
	VClear ();
/* init class dir */
	if (argc > 1)
//		chdir (argv [1]);
		left = new dir(argv [1]);
	else
		left = new dir;
	right = new dir;
	left->d.basecol = 0;
	right->d.basecol = 40;
/*-----------*/
	initfile.read();
	if (uid == 0)
		palette.dimfg = 6;
	v.VSetPalette (palette.fg, palette.bg, palette.revfg, palette.revbg,
		palette.boldfg, palette.boldbg, palette.boldrevfg, palette.boldrevbg,
		palette.dimfg, palette.dimbg, palette.dimrevfg, palette.dimrevbg);
	setdir (left, ".");
	setdir (right, ".");
	left->chdir(left->d.cwd);
	cur = left;
	draw.draw(cur, left, right);
	for (;;) {
		if (! cmdreg)
			draw.drawcursor(cur);
//		cmd.drawcmd(cur, &left, &right);
		VSync ();
		c = KeyGet ();
		if (! cmdreg)
			draw.undrawcursor(cur);
		switch (c) {
		case '+':               /* select */
		case '-':               /* unselect */
			if (! cpos && ! cmdreg && ! cur->d.status) {
				if (c == '+')
					tagall ();
				else
					untagall ();
				draw.draw(cur, left, right);
				continue;
			}
		default:
//			if (c>=' ' && c<='~' || c>=0300 && c<=0376) {
//				if (cpos || c!=' ')
//					cmd.inscmd(c);
//				continue;
//			}
			VBeep ();
			continue;
//		case cntrl ('V'):       /* quote next char */
//			cmd.inscmd(quote ());
//			continue;
//		case cntrl ('J'):       /* insert file name */
//			if (! cmdreg && ! cur->status)
//				cmd.namecmd(cur);
//			continue;
//		case cntrl ('G'):
//			cmd.delcmd();
//			continue;
//		case meta ('b'):        /* backspace */
//			if (cpos) {
//				cmd.leftcmd();
//				cmd.delcmd();
//			}
//			continue;
		case cntrl ('O'):       /* set/unset command mode */
		case cntrl ('P'):       /* set/unset command mode */
			switchcmdreg ();
			if (! cmdreg)
				visualwin = 1;
			draw.draw(cur, left, right);
			continue;
		case cntrl ('M'):         /* return */
//			if (command [0]) {
//				cmd.exec(cur, &left, &right, 1, 1);
//				draw.draw(cur, &left, &right);
//				continue;
//			}
			if (cmdreg) {
				cmdreg = 0;
				if (! visualwin) {
					visualwin = 1;
					setdir (cur==left ? right : left, NULL);
					setdir (cur, NULL);
				}
				draw.draw(cur, left, right);
				continue;
			}
			execute ();
			continue;
		case cntrl (']'):       /* redraw screen */
			VRedraw ();
			continue;
//		case cntrl ('B'):        /* history */
//			if (! visualwin)
//				VClearBox (1, 0, LINES-2, 80);
//			cmd.histmenu(cur, &left, &right);
//			draw.draw(cur, &left, &right);
//			continue;
		case meta ('A'):        /* f1 */
			genhelp ();
			draw.draw(cur, left, right);
			continue;
		case meta ('B'):          /* f2 */
			udm.menu();
			draw.draw(cur, left, right);
			continue;
		case meta ('I'):        /* f9 */
			mymenu.runmenu (cur==left ? 'l' : 'r');
			draw.draw(cur, left, right);
			continue;
		case meta ('J'):        /* f0 */
		case cntrl ('C'):       /* quit */
			quit ();
			continue;
		case cntrl ('U'):       /* swap panels */
			swappanels ();
			draw.draw(cur, left, right);
			continue;
		case cntrl ('F'):       /* full screen */
			fullscreen ();
			draw.draw(cur, left, right);
			continue;
		case cntrl ('^'):       /* cd / */
			directory (0, 'r');
			if (! cur->d.status)
				draw.drawdir(cur, 1, left, right);
			continue;
		case cntrl ('\\'):      /* cd $HOME */
			directory (0, 'o');
			if (! cur->d.status)
				draw.drawdir(cur, 1, left, right);
			continue;
//		case cntrl ('Y'):       /* clear line */
//			command [cpos = 0] = 0;
//			continue;
//		case cntrl ('X'):       /* next history */
//			cmd.nextcmd();
//			continue;
//		case cntrl ('E'):       /* prev history */
//			cmd.prevcmd();
//			continue;
//		case cntrl ('S'):       /* char left */
//		case cntrl ('A'):       /* char left */
//			cmd.leftcmd();
//			continue;
//		case cntrl ('D'):       /* char right */
//			cmd.rightcmd();
//			continue;
		case cntrl ('I'):       /* tab */
			if (cmdreg) {}
//				if (command [cpos])
//					cmd.endcmd();
//				else
//					cmd.homecmd();
			else {
				switchpanels ();
				if (fullwin) {
					draw.drawbanners();
					draw.drawdir(cur, 0, left, right);
					break;
				}
			}
			continue;
		case cntrl ('W'):       /* double width */
			if (! cmdreg) {
				setdwid ();
				draw.draw(cur, left, right);
			}
			continue;
//		case meta ('G'):        /* f7 */
//			makedir ();
//			draw.draw(cur, &left, &right);
//			continue;
		case meta ('h'):        /* home */
		case meta ('e'):        /* end */
		case meta ('u'):        /* up */
		case meta ('d'):        /* down */
		case meta ('l'):        /* left */
		case meta ('r'):        /* right */
		case meta ('n'):        /* next page */
		case meta ('p'):        /* prev page */
		case cntrl ('K'):       /* find file */
		case cntrl ('R'):       /* reread catalog */
		case cntrl ('T'):       /* tag file */
		case meta ('C'):        /* f3 */
		case meta ('D'):        /* f4 */
		case meta ('E'):        /* f5 */
		case meta ('F'):        /* f6 */
		case meta ('H'):        /* f8 */
		case cntrl ('L'):       /* status */
			if (cmdreg || cur->d.status) {}
//				docmdreg (c);
			else
				doscrreg (c);
			continue;
		}
	}
}
コード例 #5
0
ファイル: math.c プロジェクト: whiteim/CS3545
int main(void)
{
    //assign X component
    vec1[0] = 2.0;

    //assign Y component
    vec1[1] = 2.0;

    //assign Z component
    vec1[2] = 2.0;

    vec2[0] = 5.0;

    vec2[1] = 5.0;

    vec2[2] = 5.0;

    VectorAdd(vec1,vec2,vec3);
    printf("Vector addition: ");
    int i;
    for(i = 0; i < 3; i++)
    {
        printf("%g ", vec3[i]);
    }

    VectorSubtract(vec1,vec2,vec3);
    printf("\nVector subtraction: ");
    for(i = 0; i < sizeof(vec3)/sizeof(int); i++)
    {
        printf("%g ", vec3[i]);
    }

    DotProduct(vec1,vec2,cheez);
    printf("\nDot product: %g", cheez);

    Scaling(vec1, 2);
    printf("\nScaling by 2: ");
    for(i = 0; i < sizeof(vec1)/sizeof(int); i++)
    {
        printf("%g ", vec1[i]);
    }

    VCopy(vec1, vec3);
    printf("\nCopying vec1 to vec3: ");
    for(i = 0; i < sizeof(vec3)/sizeof(int); i++)
    {
        printf("%g ", vec3[i]);
    }

    VClear(vec3);
    printf("\nClearing vec3: ");
    for(i = 0; i < sizeof(vec3)/sizeof(int); i++)
    {
        printf("%g ", vec3[i]);
    }

    Inverse(vec2);
    printf("\nInverse of vec2: ");
    for(i = 0; i < sizeof(vec3)/sizeof(int); i++)
    {
        printf("%g ", vec2[i]);
    }

    Cross(vec1, vec2, vec3);
    printf("\nCross of vec1 and vec2: ");
    for(i = 0; i < sizeof(vec3)/sizeof(int); i++)
    {
        printf("%g ", vec3[i]);
    }

    Magnitude(vec2);
    printf("\nMagnitude of vec2: ");
    printf("%g ", Magnitude(vec2));

    Normalize(vec2);
    printf("\nNormalize of vec2: ");
    for(i = 0; i < sizeof(vec3)/sizeof(int); i++)
    {
        printf("%g ", vec2[i]);
    }
}
コード例 #6
0
int main()
{
	LOG_DEBUG("Starting Game");
	auto DeviceOGL = ACTK::Renderer::RenderDeviceManager::GetInstance().CreateDevice(ACTK::Renderer::API::OpenGL3x);
	if(DeviceOGL == nullptr)
	{
		return 0;
	}
	auto WindowOGL = DeviceOGL->VCreateWindow(800, 600, "HelloWorld", ACTK::Renderer::WindowType::Windowed);
	if(WindowOGL == nullptr)
	{
		return 0;
	}
	auto ShaderProgram = DeviceOGL->VCreateShaderProgram(LoadShader(IDS_VERTEXSHADER), LoadShader(IDS_FRAGMENTSHADER));

	///////////////////////////////////////////////////////////////////
	// ClearState and Color

	ACTK::Renderer::ClearState cornflowerBlue;
	cornflowerBlue.Color = ACTK::Renderer::Color(0.392f, 0.584f, 0.929f, 1.0f);

	///////////////////////////////////////////////////////////////////
	// Vertex Array
	
	// Dreieck-Koordinaten, die ohne Kamera in dem Fenster zu sehen sein müssten
	float* vertices = new float[9];     // vertex array 
	vertices[0] =-0.3f; vertices[1] = 0.5f; vertices[2] =-1.0f;
	vertices[3] =-0.8f; vertices[4] =-0.5f; vertices[5] =-1.0f;
	vertices[6] = 0.2f; vertices[7] =-0.5f; vertices[8]= -1.0f;

	// TODO: Buffer erstellen und mit Dreieckinformationen füllen
	

	///////////////////////////////////////////////////////////////////
	// Uniforms
	float white[] = {1.0f, 1.0f, 1.0f};
	ShaderProgram->VSetUniformVector("u_color", white, 3);

	///////////////////////////////////////////////////////////////////
	// RenderState
		
	// TODO: RenderState

		// So ungefähr soll es aussehen
		// ACTK::RenderState renderState;
		// renderState.FacetCulling.Enabled = false;
		// renderState.DepthTest.Enabled = false;

	///////////////////////////////////////////////////////////////////
	// Gameloop
	auto ContextOGL = WindowOGL->VGetContext();

	MSG msg = { 0 };
	LOG_DEBUG("Running Game");
	while(!WindowOGL->VShouldClose())
	{
		if(PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ))
        {
            TranslateMessage( &msg );
            DispatchMessage( &msg );
        }
        else
        {
			ContextOGL->VClear(cornflowerBlue);
			
			// TODO: Dreieck zeichnen mit dem Context
				
				// So ungefähr muss der Aufruf aussehen. Ändere dafür das Interface entsprechend und implementiere die Funktion in der DLL
				//ContextOGL->draw( PrimitiveType, Offset, Count, VertexArray, ShaderProgram, RenderState );
				
				// PrimitiveType	= Was soll gezeichnet werden? Dreieck, Linie, Punkte
				// Offset			= Ab welchem Index Dreieck in dem VertexArray
				// Count			= Wie viele Koordinaten nach dem Offset die gezeichnet werden müssen
				// VertexArray		= Dreieckskoordinaten
				// Shader Program	= Das ShaderProgramm (Vertex und Pixelshader) mit dem die Dreiecke gezeichnet werden sollen
				// RenderState		= Die RenderState Einstellungen die für das Zeichnen dieses Dreiecks vorgenommen werden sollen

				// Das machen wir schrittweise: (Dreiecke mit GlBegin() und GLEnd() zeichnen;
				// 1. Schritt: ContextOGL->draw( VertexArray, ShaderProgram );												// alle dreiecke zeichnen
				// 2. Schritt: ContextOGL->draw( Offset, Count, VertexArray, ShaderProgram );								// nickt alle dreiecke zeichnen
				// 3. Schritt: ContextOGL->draw( PrimitiveType, Offset, Count, VertexArray, ShaderProgram );				// Dreieck als Linie oder Punkte zeichnen
				// 5. Schritt: ContextOGL->draw( PrimitiveType, Offset, Count, VertexArray, ShaderProgram, RenderState );	// RenderState einstellen

				// 6. Schritt: Das selbe mit Vertex Buffern
			ContextOGL->VDraw(ACTK::Renderer::PrimitiveType::LineLoop, vertices, ShaderProgram, 1);
			ContextOGL->VSwapBuffers();
        }
	}
	LOG_DEBUG("Quitting Game");
	return (int) msg.wParam;
}