GetDrawScreenGraph()はコピーが入るので重そうですね。
代わりに
1 空のグラフィックを作る
2 1で作ったハンドルを描画先にする SetDrawScreen()を使って描画先にする
3 ラスタースクロールさせたい絵を描き込む
4 SetDrawScreenで描画先を元に(裏面)戻す
5 1で作ったグラフィックを使ってラスタースクロールを描画する
という方法ではどうでしょうか。
この方法でしたら負荷は最小限で済むと思います。
(ただグラフィックスチップが古いと動かないかもしれません)
#include "DxLib.h"
// ウインドウのサイズ
const int ScreenSize_Width = 640;
const int ScreenSize_Height= 360;
// メイン関数
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
::ChangeWindowMode(TRUE);
::SetGraphMode(ScreenSize_Width, ScreenSize_Height, 32);
if(::DxLib_Init()==-1)return -1;
// 1
SetDrawValidGraphCreateFlag(TRUE);
int renderScreen = MakeGraph(ScreenSize_Width, ScreenSize_Height);
SetDrawValidGraphCreateFlag(FALSE);
// 2
SetDrawScreen(renderScreen);
// 3
int white_color = GetColor(255, 255, 255);
int red_color = GetColor(255, 80, 80);
DrawCircle(ScreenSize_Width/2, ScreenSize_Height/2, 100, red_color, TRUE);
DrawString(100, 100, "Test String", white_color);
// 4
SetDrawScreen(DX_SCREEN_BACK);
// 5
DrawExtendGraph(0, 0, ScreenSize_Width/2, ScreenSize_Height/2, renderScreen, FALSE);
ScreenFlip();
WaitKey();
DxLib_End();
return 0;
}