/* --------------------------------------------------------------------------- * initializes the buffers by allocating memory */ void InitBuffers (void) { int i; for (i = 0; i < MAX_BUFFER; i++) Buffers[i].Data = CreateNewBuffer (); }
int main(int argc, const char * argv[]) { std::string bmp_path = "/Users/maxmustermann/Downloads/shaunak.bmp"; int height = 0; int width = 0; unsigned long size = 0, padding = 0; //std::cout << "[i] path to bmp (without spaces): "; //std::cin >> bmp_path; //std::cout << std::endl; BYTE* bin_buffer = LoadBMP(&width, &height, &size, bmp_path); for(int i = 0; i < size; i++){ //std::cout << bin_buffer[i]; } std::cout << std::endl; //output std::reverse(bin_buffer, bin_buffer + size); std::unique_ptr<BYTE[]> newbuf2 = CreateNewBuffer(padding, bin_buffer, width, height); std::cout << "[i] old size was " << size << "." << std::endl; SaveBMP((BYTE*) &newbuf2[0], width, height, 24, padding, "/tmp/out.bmp"); return 0; }
/* --------------------------------------------------------------------------- * creates a new PCB */ PCBTypePtr CreateNewPCB (bool SetDefaultNames) { PCBTypePtr ptr; int i; /* allocate memory, switch all layers on and copy resources */ ptr = (PCBTypePtr)calloc (1, sizeof (PCBType)); ptr->Data = CreateNewBuffer (); ptr->Data->pcb = (PCBTypePtr) ptr; ptr->ThermStyle = 4; ptr->IsleArea = 2.e8; ptr->SilkActive = false; ptr->RatDraw = false; SET_FLAG (NAMEONPCBFLAG, ptr); if (Settings.ShowNumber) SET_FLAG (SHOWNUMBERFLAG, ptr); if (Settings.AllDirectionLines) SET_FLAG (ALLDIRECTIONFLAG, ptr); ptr->Clipping = 1; /* this is the most useful starting point for now */ if (Settings.RubberBandMode) SET_FLAG (RUBBERBANDFLAG, ptr); if (Settings.SwapStartDirection) SET_FLAG (SWAPSTARTDIRFLAG, ptr); if (Settings.UniqueNames) SET_FLAG (UNIQUENAMEFLAG, ptr); if (Settings.SnapPin) SET_FLAG (SNAPPINFLAG, ptr); if (Settings.ClearLine) SET_FLAG (CLEARNEWFLAG, ptr); if (Settings.FullPoly) SET_FLAG (NEWFULLPOLYFLAG, ptr); if (Settings.OrthogonalMoves) SET_FLAG (ORTHOMOVEFLAG, ptr); if (Settings.liveRouting) SET_FLAG (LIVEROUTEFLAG, ptr); if (Settings.ShowDRC) SET_FLAG (SHOWDRCFLAG, ptr); if (Settings.AutoDRC) SET_FLAG (AUTODRCFLAG, ptr); ptr->Grid = Settings.Grid; ptr->LayerGroups = Settings.LayerGroups; STYLE_LOOP (ptr); { *style = Settings.RouteStyle[n]; style->index = n; } END_LOOP; hid_action ("RouteStylesChanged"); ptr->Zoom = Settings.Zoom; ptr->MaxWidth = Settings.MaxWidth; ptr->MaxHeight = Settings.MaxHeight; ptr->ID = ID++; ptr->ThermScale = 0.5; ptr->Bloat = Settings.Bloat; ptr->Shrink = Settings.Shrink; ptr->minWid = Settings.minWid; ptr->minSlk = Settings.minSlk; ptr->minDrill = Settings.minDrill; ptr->minRing = Settings.minRing; for (i = 0; i < MAX_LAYER; i++) ptr->Data->Layer[i].Name = strdup (Settings.DefaultLayerName[i]); return (ptr); }