int SendData(int dsize,unsigned char *dptr) { int retval; if (UDPEnable){ /* retval = sendto(ugamesocket,dptr,dsize,0,(struct sockaddr *)&ugameaddress,sizeof(ugameaddress)); if (retval == SOCKET_ERROR) { closesocket(gamesocket); return(-1); } return(0); */ if (((packetnum-packetnumhead) & 0xFF) >= 15){ // sprintf(message1,"Packet Overflow."); // MessageBox (NULL, message1, "Init Error" , MB_ICONERROR ); // wait for receive packet, call JoyRead while waiting while (((packetnum-packetnumhead) & 0xFF) >= 15){ PacketResend(); PacketReceive(); UpdateVFrame(); while ((packetconfirm[packetnumhead]) && (packetnum!=packetnumhead)) packetnumhead=(packetnumhead+1) & 0xFF; } } CopyMemory(&(cpacketdata[2]),dptr,dsize); CopyMemory(&(packetdata[2048*(packetnum & 0x0F)]),dptr,dsize); packetsize[packetnum]=dsize; packetconfirm[packetnum]=0; cpacketdata[0]=1; cpacketdata[1]=(char)packetnum; retval = sendto(ugamesocket,cpacketdata,dsize+2,0,(struct sockaddr *)&ugameaddress,sizeof(ugameaddress)); packettimeleft[packetnum]=60; if (dsize>512) packettimeleft[packetnum]=90; packetresent[packetnum]=1; packetnum=(packetnum+1) & 0xFF; if (retval == SOCKET_ERROR) { closesocket(ugamesocket); return(-1); } return(0); } /* send data with the socket */ retval = send(gamesocket,dptr,dsize,0); if (retval == SOCKET_ERROR) { closesocket(gamesocket); return(-1); } return(0); }
void UDPWait1Sec(){ CounterB=60; while (CounterB>0) UpdateVFrame(); }
void gl_drawwin() { int i; NGNoTransp = 0; // Set this value to 1 within the appropriate // video mode if you want to add a custom // transparency routine or hardware // transparency. This only works if // the value of newengen is equal to 1. // (see ProcessTransparencies in newgfx16.asm // for ZSNES' current transparency code) UpdateVFrame(); if (curblank != 0) return; if (BilinearFilter) { glfilters = GL_LINEAR; if (GUIOn2 && !FilteredGUI) glfilters = GL_NEAREST; } else { glfilters = GL_NEAREST; } if (En2xSaI && SurfaceX != 256) { /* We have to use copy640x480x16bwin for 2xSaI */ AddEndBytes = 0; NumBytesPerLine = 1024; WinVidMemStart = (void *) glvidbuffer; copy640x480x16bwin(); /* Display 4 256x256 quads for the 512x448 buffer */ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, glfilters); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, glfilters); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); /* Upper left quad */ glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0); glPixelStorei(GL_UNPACK_ROW_LENGTH, 512); glTexImage2D(GL_TEXTURE_2D, 0, 3, 256, 256, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, glvidbuffer); glBegin(GL_QUADS); glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, 1.0f, -1.0f); glTexCoord2f(1.0f, 0.0f); glVertex3f(0.0f, 1.0f, -1.0f); glTexCoord2f(1.0f, (224.0 / 256.0)); glVertex3f(0.0f, 0.0f, -1.0f); glTexCoord2f(0.0f, (224.0 / 256.0)); glVertex3f(-1.0f, 0.0f, -1.0f); glEnd(); /* Upper right quad */ glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0); glPixelStorei(GL_UNPACK_ROW_LENGTH, 512); glTexImage2D(GL_TEXTURE_2D, 0, 3, 256, 256, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, glvidbuffer + 256); glBegin(GL_QUADS); glTexCoord2f(0.0f, 0.0f); glVertex3f(0.0f, 1.0f, -1.0f); glTexCoord2f(1.0f, 0.0f); glVertex3f(1.0f, 1.0f, -1.0f); glTexCoord2f(1.0f, (224.0 / 256.0)); glVertex3f(1.0f, 0.0f, -1.0f); glTexCoord2f(0.0f, (224.0 / 256.0)); glVertex3f(0.0f, 0.0f, -1.0f); glEnd(); /* Lower left quad */ glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0); glPixelStorei(GL_UNPACK_ROW_LENGTH, 512); glTexImage2D(GL_TEXTURE_2D, 0, 3, 256, 256, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, glvidbuffer + 512 * 224); glBegin(GL_QUADS); glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, 0.0f, -1.0f); glTexCoord2f(1.0f, 0.0f); glVertex3f(0.0f, 0.0f, -1.0f); glTexCoord2f(1.0f, (224.0 / 256.0)); glVertex3f(0.0f, -1.0f, -1.0f); glTexCoord2f(0.0f, (224.0 / 256.0)); glVertex3f(-1.0f, -1.0f, -1.0f); glEnd(); /* Lower right quad */ glTexImage2D(GL_TEXTURE_2D, 0, 3, 256, 256, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, glvidbuffer + 512 * 224 + 256); glBegin(GL_QUADS); glTexCoord2f(0.0f, 0.0f); glVertex3f(0.0f, 0.0f, -1.0f); glTexCoord2f(1.0f, 0.0f); glVertex3f(1.0f, 0.0f, -1.0f); glTexCoord2f(1.0f, (224.0 / 256.0)); glVertex3f(1.0f, -1.0f, -1.0f); glTexCoord2f(0.0f, (224.0 / 256.0)); glVertex3f(0.0f, -1.0f, -1.0f); glEnd(); } else { /* * This code splits the hires/lores portions up, and draws * them with gl_drawspan */ int lasthires, lasthires_line = 0; gltexture256 = gltexture512 = 0; lasthires = SpecialLine[1]; for (i = 1; i < 222; i++) { if (SpecialLine[i + 1]) { if (lasthires) continue; gl_drawspan(lasthires, lasthires_line, i); lasthires = SpecialLine[i + 1]; lasthires_line = i; } else { if (!lasthires) continue; gl_drawspan(lasthires, lasthires_line, i); lasthires = SpecialLine[i + 1]; lasthires_line = i; } } gl_drawspan(lasthires, lasthires_line, i); /* * This is here rather than right outside this if because the * GUI doesn't allow scanlines to be selected while filters are * on.. There is no technical reason they can't be on while * filters are on, however. Feel free to change the GUI, and * move this outside the if (En2xSaI) {}, if you do. */ if (scanlines) { glDisable(GL_TEXTURE_2D); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBindTexture(GL_TEXTURE_1D, gltextures[3]); glColor4f(1.0f, 1.0f, 1.0f, scanlines == 1 ? 1.0f : (scanlines == 2 ? 0.25f : 0.50f)); for (i = 0; i < SurfaceY; i += 256) { glBegin(GL_QUADS); glTexCoord1f(0.0f); glVertex3f(-1.0f, (SurfaceY - i * 2.0) / SurfaceY, -1.0f); glTexCoord1f(0.0f); glVertex3f(1.0f, (SurfaceY - i * 2.0) / SurfaceY, -1.0f); glTexCoord1f(1.0f); glVertex3f(1.0f, (SurfaceY - (i + 256) * 2.0) / SurfaceY, -1.0f); glTexCoord1f(1.0f); glVertex3f(-1.0f, (SurfaceY - (i + 256) * 2.0) / SurfaceY, -1.0f); glEnd(); } glDisable(GL_BLEND); glEnable(GL_TEXTURE_2D); } } SDL_GL_SwapBuffers(); }